配置CRUD通用接口
Posted galaxy2490781718
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置CRUD通用接口相关的知识,希望对你有一定的参考价值。
1 module.exports = app => { 2 const router = require(‘express‘).Router({ 3 mergeParams: true 4 }) 5 6 // 增 7 router.post(‘/‘, async (req, res) => { 8 await req.Model.create(req.body) 9 res.send({ 10 success: true 11 }) 12 }) 13 // 根据ID删除 14 router.delete(‘/:id‘, async (req, res) => { 15 await req.Model.findByIdAndDelete(req.params.id) 16 res.send({ 17 success: true 18 }) 19 }) 20 // 根据ID修改 21 router.put(‘/:id‘, async (req, res) => { 22 await req.Model.findByIdAndUpdate(req.params.id, req.body) 23 res.send({ 24 success: true 25 }) 26 }) 27 // 查 28 router.get(‘/‘, async (req, res) => { 29 const queryOptions = {} 30 if (req.Model.modelName === ‘Category‘) { 31 queryOptions.populate = ‘parent‘ 32 }37 const data = await req.Model.find().setOptions(queryOptions) 38 res.send(data) 39 }) 40 // 根据ID查询 41 router.get(‘/:id‘, async (req, res) => { 42 const data = await req.Model.findById(req.params.id) 43 res.send(data) 44 }) 45 46 app.use(‘/admin/api/rest/:resource‘, async (req, res, next) => { 47 const classify = require(‘inflection‘).classify // 小写复数形式转换为首字母大写单数形式的类名 48 req.Model = require(`../models/${classify(req.params.resource)}`) 49 next() 50 }, router) 51 }
以上是关于配置CRUD通用接口的主要内容,如果未能解决你的问题,请参考以下文章
走向无后端的系统开发实践:CRUD自动化与强约定的REST接口
如何仅使用 java 和 jdbc(无 ORM)为基本的 crud 操作实现通用 DAO?