为项目定义一个CRUD通用接口(express)

449 阅读1分钟

首先定义一个 Models, 指向数据库的模板用于搜索对应的数据.

const Models = require(`../../models/${modelName}`)

modelName 通过req.params.resource用于获取地址中的传过来的分地址

const modelName = require('inflection').classify(req.params.resource)

(: 这里的inflection是我引入的一个插件,用来将复数的categories转为单数首字母大写的Category,因为我定义的模板名称是Category)

例子如下

app.use('/admin/api/rest/:resource', router)

我们用这种方式传入了resource,假设前端打开的是分类页面,那这里就是我们定义的路由名,通过这种方式去修改对应页面的对应数据.

resource首先传如第一个函数转为一个合法的模板路径后,通过req.Models 与其他数据响应到子路由router

此时通过Models,就可以去数据库里查找对应模板对应的数据,这就实现了CRUD接口的通用化

注:为加深印象以及理解书写的短文,如有任何问题欢迎指出!谢谢