资讯专栏INFORMATION COLUMN

Node +MongoDB 搭建后台的全过程

voidking / 3243人阅读

摘要:搭建后台的全过程近期基于搭建前端项目,搭建后台,遇到了不少问题,总结博客如下,有什么不正确的地方,请大家批评指正是非关系型数据库。是用来启动的,是的命令行客户端。

Node + mongoDB 搭建后台的全过程

近期基于 vue-cil 搭建前端项目, express + mongoose 搭建后台,遇到了不少问题,总结博客如下,有什么不正确的地方,请大家批评指正^ _ ^!

mongodb 是 NoSQL 非关系型数据库。
mongoose是 mongodb 的一个对象模型工具,是基于 node-mongodb-native 开发的 mongodb 的 nodejs 驱动,可以在异步的环境下执行。同时它也是针对 mongodb 操作的一个对象模型库,封装了 mongodb 对文档的一些增删改查等常用方法,让nodejs操作 mongodb 数据库变得更加容易。
一、Mac下mongodb的安装与配置

1、 安装mongodb:

brew install mongodb

2、安装成功之后,启动 mongodb

mongod

3、执行 mongod ,启动 mongodb 失败,显示如下:

原因 : 启动 mongodb 之前,要先新建一个mongodb默认的数据写入目录:

sudo mkdir -p /data/db

给刚才新建的数据库目录赋予权限

sudo chown -R 用户名 /data

如下图所示:

4、再次启动

mongod

5、若启动成功,可以通过http访问该数据库,mongodb使用了27017端口,因此在浏览器中打开 http://localhost:27017
出现如下图所示提示,即说明连接成功。默认的情况下,关闭shell,mongodb就停止运行了 如果想在后台运行,启动时只需添加 --fork函数即可

小结:

mongod 是用来连接到mongodb数据库服务器的,即服务器端。
mongo 是用来启动MongoDB shell的,是mongodb的命令行客户端。
二、安装 MongoDB可视化工具 RoboMongo

下载地址:https://robomongo.org/download

三、连接数据库

dbase.js

let mongoose = require("mongoose");
/**
 * 连接
 */
mongoose.connect("mongodb://127.0.0.1:27017/learning",{useNewUrlParser: true});

/**
  * 连接成功
  */
mongoose.connection.on("connected", function () {    
    console.log("Mongoose connection succuss" );  
});    

/**
 * 连接异常
 */
mongoose.connection.on("error",function (err) {    
    console.log("Mongoose connection error: " + err);  
});    
 
/**
 * 连接断开
 */
mongoose.connection.on("disconnected", function () {    
    console.log("Mongoose connection disconnected");  
}); 


module.exports = mongoose;
四、启动 node 服务

server.js

const fs = require("fs")
const path = require("path")
const express = require("express")
const session = require("express-session")
const bodyParser = require("body-parser")
const app = express()

require("./dbase")
app.use(bodyParser.json()) //解析json类型的请求体

app.get("*", function (req, res) {
    res.sendFile(path.join(__dirname, "../Learning/index.html"));
})

app.listen(process.env.PORT || 8000, function () {
    console.log("Listen port:8000...")
});

小结:

问题: 启动node服务连接数据库时,报错如下图所示:

解决办法:在 mongoose 5.x 版本中,连接数据库时,不再使用 {useMongoClient: true}),而是 { useNewUrlParser: true }

五、 vue-cil 搭建的项目跨域问题

Vue-cli 创建的项目,可以直接利用 Node.js 代理服务器,通过修改proxyTable接口实现跨域请求。在vue-cli项目中的config文件夹下的index.js配置文件中,修改 dev 里面的proxyTable: {}项,如下所示:

proxyTable: {  
    "/api": {  //代理地址  
        target: "http://127.0.0.1:8000/",  //需要代理的地址  
        changeOrigin: true,  //是否跨域  
        secure: false,    
        pathRewrite: {  
            "^/api": "/"   //本身的接口地址没有 "/api" 这种通用前缀,所以要rewrite,如果本身有则去掉  
        }
    }
}

重启项目npm run dev ,接口前加上“/api”即可实现跨域请求

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19346.html

相关文章

  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目

    摘要:利用中间件实现异步请求,实现两个用户角色实时通信。目前还未深入了解的一些概念。往后会写更多的前后台联通的项目。删除分组会连同组内的所有图片一起删除。算是对自己上次用写后台的一个强化,项目文章在这里。后来一直没动,前些日子才把后续的完善。 欢迎访问我的个人网站:http://www.neroht.com/ 刚学vue和react时,利用业余时间写的关于这两个框架的训练,都相对简单,有的...

    tangr206 评论0 收藏0
  • 手把手用 express 搭建后台

    摘要:文件这个是项目的入口文件,这边有着项目的一下配置,也在此整合了项目的模块,其中要注意的就是里面关于路由模块的配置了。后面要再想加其他路由模块的时候,就按照上面先引入路由模块,再用设置好地址,后面就可以用了。 前言 想必很多小伙伴开始学 node 的时候想搞个项目出来却不知道怎么下手吧,这个教程的话就是教大家用 express 框架简单粗暴搭建一个可以用的后台出来,然后关于 node 和...

    Render 评论0 收藏0
  • vue+node+mongodb 搭建一个完整博客

    摘要:开发一个完整博客流程前言前段时间刚把自己的个人网站写完,于是这段时间因为事情不是太多,便整理了一下,写了个简易版的博客系统服务端用的是框架进行开发技术栈目录结构讲解的配置文件放置代码文件项目参数配置的文件日志打印文件项目依赖模块 Vue + Node + Mongodb 开发一个完整博客流程 前言 前段时间刚把自己的个人网站写完, 于是这段时间因为事情不是太多,便整理了一下,写了个简易...

    Miracle_lihb 评论0 收藏0
  • 阿里云轻量应用服务器部署Node项目手记

    摘要:本地和服务器环境本地位服务器阿里云轻量应用服务器使用的连接工具当然还有这几个中任选一个就好啦。连接工具使用方法创建填入服务器地址和用户名,点击确认然后输入密码即可。执行测试项目新建项目文件。使用编辑器打开项目文件。 本地和服务器环境 本地:Windows10 64位 服务器:阿里云轻量应用服务器CentOS 7.3 使用的连接工具:puttymobaxterm当然还有Xshell这几个...

    KaltZK 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<