node-mongodb---通用的CRUD接口

691 阅读1分钟

服务端经常涉及一些增删改查的接口编写,为了提高代码复用性,加强工作效率,开发一个基于node-mongoDB的通用CRUD接口。

代码分析

先看一下平常的服务端接口:

image.png 分析一下有哪些变量:

路由resource

Model

5个请求:

创建数据提交至数据库

获取所有数据

根据id获取单条数据

根据id修改提交单条数据

根据id删除单条数据

将路由和模型变为变量

首先我们观察到,路由resource就是模型单词的复数并且首字母变小写,比如:

模型:Category

resource: catergories

二者的对应关系:模型是resource的”类“形式。

改造接口url

image.png

从每个路由url中取到对应的模型

由于在app.use()中定义的参数,又需要在router里面用到这个参数,所以要合并url参数:

image.png serve项目安装一个具有把首字母小写的复数的单词转换为类(首字母大写且为单数)功能的第三方模块: npm i inflection 以其中一个接口为例: 先将require某个具体模型的代码注释掉。

image.png 在每个接口中都加上这两行代码就能把model变为变量,但这样有些麻烦,将这两行代码放到一个前置的中间件当中,每条接口之前先走这个中间件,也就实现了相同效果:

image.png

把每个接口里的路由和模型改为变量:

image.png

修改前端项目admin的请求路径:

image.png

关联查询判断

有的页面需要关联查询,有的不需要,做个判断

image.png 看一下界面,没有问题。

image.png