扫码关注官方订阅号
小白一个,对后端不是很了解,请问在node expressjs中按照MVC的思想,数据库mongoose处理增删修改,应该放在哪里?单独放一个文件夹models里面吗?还是放routes文件夹下?路由器中间件相当于控制器C对吧?。。在此谢谢了!
你的增删查改是怎么发起的?往往也是响应用户的一个路由操作吧?小项目可以直接写在路由的处理函数里。比如:
router.get('/item/:id', function(res, req, next) { db.collection('items').findOne({'_id': new ObjectID(req.params.id)}, function(err, item) { /*根据返回的item渲染view*/ }); })
当然这样写稍微有点寒碜,像楼上所说,也可以专门建一个model 文件夹,专门封装对数据的增删查改操作:
/* ./model/Item.js*/ Item.getById = function(id, callback) { db.collection('items').findOne({'_id': new ObjectID(id)}, function(err, item) { if (err) { callback(err); } callback(null, item) }) }
把Item.getById 函数导出,就可以直接用了:
router.get('/item/:id', function(res, req, next) { Item.getById(req.params.id, function(err, item) { /*根据返回的item渲染view*/ }) })
这样写的好处是把对数据的增删查改解耦出来;如果有其他路由需要根据id获取数据,也是直接用Item.getById 就可以了。
放文件夹models下
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你的增删查改是怎么发起的?往往也是响应用户的一个路由操作吧?小项目可以直接写在路由的处理函数里。比如:
当然这样写稍微有点寒碜,像楼上所说,也可以专门建一个model 文件夹,专门封装对数据的增删查改操作:
把Item.getById 函数导出,就可以直接用了:
这样写的好处是把对数据的增删查改解耦出来;如果有其他路由需要根据id获取数据,也是直接用Item.getById 就可以了。
放文件夹models下