我想知道实现MVC模式的最佳方法是sails.js。
现在我有以下结构:我有一个路由将请求重定向到控制器:
'POST /api/user/...': {controller: 'UserController', action: 'someFunction'},
我的用户模型:
module.exports = {
...
attributes: {...}
}
我有控制器:
someFunction: function(req, res) {
let param = req.body.param;
let userId = req.session.userId;
userService.someFunction(userId, param, function (result) {
return res.json({result});
});
},
在userService中,我有操作数据库的方法,例如:
someFunction: function(userId, param, callback){
User.findOne(userId).exec(function (err, user){
if (err) {
callback(false);
} else {
// find the user's additional info
User.update({name: param}, { ... })
}
我真正的问题是,这是一个很好的模式,或者我走错了路。
感谢您的任何回应。
答案 0 :(得分:1)
注意:对此问题的回答可以基于意见。这是我的意见。
Sails项目是以MVC模式搭建的。模型(api/models
),控制器(api/controllers
)和视图(views
)有单独的文件夹。
你在服务中使用数据库方法是正确的 任何可能需要多个控制器操作的东西都应该进入服务。
其他想法:
async/await
。 Sails(Waterline)方法返回Bluebird promises,它与async / await结合使用。