摘要:搭建后台的全过程近期基于搭建前端项目,搭建后台,遇到了不少问题,总结博客如下,有什么不正确的地方,请大家批评指正是非关系型数据库。是用来启动的,是的命令行客户端。
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
摘要:因为平常开发都是前后端分离的模式,就想着使用创建后台服务,写一套接口配合其他的项目。复杂数据的处理,比如要展现的信息需要从数据库获取或者是第三方服务的调用。更新用户信息用户信息已更改一个简单的应用结构就是这样,如此便实现了用负责接口服务。 写在前面的话 最近在学习Egg.js,它是阿里推出的基于Koa的node开发框架,为企业级框架和应用而生。Egg.js 的官方文档已经很完善了,想学...
摘要:因为平常开发都是前后端分离的模式,就想着使用创建后台服务,写一套接口配合其他的项目。复杂数据的处理,比如要展现的信息需要从数据库获取或者是第三方服务的调用。更新用户信息用户信息已更改一个简单的应用结构就是这样,如此便实现了用负责接口服务。 写在前面的话 最近在学习Egg.js,它是阿里推出的基于Koa的node开发框架,为企业级框架和应用而生。Egg.js 的官方文档已经很完善了,想学...
阅读 979·2021-09-22 15:26
阅读 2579·2021-09-09 11:52
阅读 1821·2021-09-02 09:52
阅读 2192·2021-08-12 13:28
阅读 1161·2019-08-30 15:53
阅读 473·2019-08-29 13:47
阅读 3360·2019-08-29 11:00
阅读 3027·2019-08-29 10:58