使用express+mongoose开发简单的blog
最近工作上需要使用Nodejs开发一些小的demo,有些数据使用数据库进行存储,就用了express+mongoose,这里使用博客这个小例子记录一下:
目录结构如下
目录结构安装
开发前先安装mongodb数据库,然后新建一个目录,安装express+mongoose
npm install --save express mongoose
开发前先安装mongodb数据库,安装和启动百度就可以
mongoose 是使用nodejs对mongodb数据库的操作进行了抽象和封装,有以下几个概念:Schema、Model、Document
Schema: 模式
, 类似于关系数据库中的表的概念
Model: 模型
负责和底层MongoDB数据库进行交互
Document:文档
表示存储在MongoDB中的数据的一对一映射。每个文档都是其模型的一个实例
接下来先起一个node 服务:
API server.js
然后建立Schema和Model
mongoose.model()第一个参数是类似关系数据库中的表名,在数据库中建立时默认会加s,即在数据库中呈现的是blogs 数据集合
然后写API的处理函数
blogControllers.js
当新增blog的时候可以看到先 new blog(),这个blog就是前面的
module.exports = mongoose.model('blog', blogSchema);
每条博客数据都是一个Document,都是blogModel的一个实例,但是注意在查询、删除、修改等操作的时候不需要再new一个Model实例,Model的原型上提供了好多方法可以使用,具体可以查看mongoose文档。
接下来就是将服务器和mongodb数据库连接到一起了
mongoose.connect("mongodb://localhost:27017/blogDB", { useNewUrlParser: true });
其中数据库端口默认是27017,可以自行更改
然后就可以启动node server,如果没有报错信息的话就可以测试接口是否正确了,这里使用postman进行接口测试
postman可以看到新增一条数据后返回的就是新增的这条数据
在Robomongo(mongodb数据库可视化工具)中可以看到数据已经存储进去
Robomongo
到这里就算结束了,刚开始写文章所以可能表述和格式都比较乱,有问题可以在评论区交流
再推荐下postman这个工具,测试API非常好用,还可以mock数据,有chrome 插件和桌面应用,大家可以下载试试
参考
mongoose官方文档