服务端经常涉及一些增删改查的接口编写,为了提高代码复用性,加强工作效率,开发一个基于node-mongoDB的通用CRUD接口。
代码分析
先看一下平常的服务端接口:
分析一下有哪些变量:
路由resource
Model
5个请求:
创建数据提交至数据库
获取所有数据
根据id获取单条数据
根据id修改提交单条数据
根据id删除单条数据
将路由和模型变为变量
首先我们观察到,路由resource就是模型单词的复数并且首字母变小写,比如:
模型:Category
resource: catergories
二者的对应关系:模型是resource的”类“形式。
改造接口url
从每个路由url中取到对应的模型
由于在app.use()中定义的参数,又需要在router里面用到这个参数,所以要合并url参数:
serve项目安装一个具有把首字母小写的复数的单词转换为类(首字母大写且为单数)功能的第三方模块:
npm i inflection
以其中一个接口为例:
先将require某个具体模型的代码注释掉。
在每个接口中都加上这两行代码就能把model变为变量,但这样有些麻烦,将这两行代码放到一个前置的中间件当中,每条接口之前先走这个中间件,也就实现了相同效果:
把每个接口里的路由和模型改为变量:
修改前端项目admin的请求路径:
关联查询判断
有的页面需要关联查询,有的不需要,做个判断
看一下界面,没有问题。