上一节先后端项目分别初始化完成,这一小节我就从后端项目开始写。实现mongoDB
数据库的链接。vue
下面是经过express-generate
生成的项目的目录node
bin/www
是项目的启动文件,启动项目除了上次说的npm start
,还能够再命令后执行 node bin/www
,其实这两个命令是同样的,只不过在package.json
文件中二者创建了连接,以下图mongodb
node_modules
不用多说,项目的依赖都安装于此public
是放置一些公共资源的文件夹,我之后也不会用到它,因此把他给删掉了router
下的.js文件就是咱们写API的地方了,为了更直观,我把router
名字改成api
,把里面的文件名字分别改成post.js
和admin.js
.(我把api分红两个文件,一个是与文章相关的,另外一个是与管理员相关的)views
是页面的模板,由于咱们后端只提供数据接口,因此用不到页面文件,我把他给删掉了app.js
是整个项目的入口文件,至关于后端项目的大脑,它里面的文件是按顺序执行package.json
是关于咱们这个项目用到的依赖。
须要说明的是,须要在根目录下建立一个models
的文件夹用来初始化mongodb
数据库等一些操做的。
下面就是整理好的后端目录docker
安装方法在这里很少说,网上资源一大堆,能够去官网看官方文档,我是利用Docker
安装的,方便本地调试。
安装完成后不要忘记启动mongodb数据库
mongoose
是mongodb
的一个对象模型工具,有了它,能够很方便的操做mongodb
数据库,还不是很了解mongoose
的小伙伴自行google,资料有不少。
命令行输入 npm install mongoose --save
express
安装完成后,首先要定义模型
在models
文件夹下新建一个post.js
定义文章的模型,填入内容npm
let mongoose = require('mongoose') //引入mogoose //在 Mongoose 中,全部东西都从一个 Schema 开始。每个 schema 都映射到一个 MongoDb 的集合,并定义了该集合中的文档的形式。 let postSchema = new mongoose.Schema({ title: String, //规定文章的标题是字符串类型 content: String //规定文章的内容是字符串类型 }) let postModel = mongoose.model('posts', postSchema) //定义模型 module.exports = postModel //经过commonJS模块语法导出
在models
文件夹下新建一个admin.js
定义管理员模型,填入内容json
let mongoose = require('mongoose') let adminSchema = new mongoose.Schema({ name: String, //用户名 pass: String //密码 }) let adminModel = mongoose.model('admin', adminSchema) module.exports = adminModel
继续在models
文件夹下新建一个init.js
用于链接mongoDB数据库,填入内容segmentfault
let mongoose = require('mongoose') mongoose.connect('mongodb://localhost:27017/blog') // 数据库的端口号根据需求进行调整,通常直接安装mongodb并启动后,端口号默认是27017,若是经过docker安装,端口号会是其余的。blog是咱们博客的数据库的名字,若是没有名字为blog的数据库,会自动添加。 ///打印链接状态的日志,可自行选择写与不写 mongoose.connection.on('connected', (req, res) => { console.log('MongoDB connected success') }) mongoose.connection.on('err', (req, res) => { console.log('MongoDB connected fail') }) mongoose.connection.on('disconnected', (req, res) => { console.log('MongoDB connected disconnected') })
下面就重启咱们后端项目,若是上次开启的进程还没关掉,命令行control + c
关闭进程,输入npm start
重启项目。后端
fk,报错。。
不能找到index这个文件,原来是咱们刚刚改了index.js
和user.js
文件的名字,由于这两个文件在app.js
中被引用,因此找到app.js
,
把
和
修改成
修改完成后,执行npm start
项目是启动成功了,可是结果没有出现打印的日志
说明咱们的数据库没有链接,找了好久,原来是由于咱们的init.js
文件没有在app.js
中引用,那确定是没有执行init.js
文件,由于前面说了整个项目的主入口文件是app.js
,因此咱们在app.js
中引用它
如今重启项目,看看是否是有了链接成功的日志
数据库已链接成功,那么下一步写接口!