如何在帆中实现 MVC 模式?

How to achieve MVC pattern in sails?

我想知道实现 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}, { ... })
}

我真正的问题是,这是一个值得遵循的好模式,还是我走错了路。

感谢您的任何回复。

注意:这个问题的答案可以基于意见。这是我的看法。

Sails 项目以 MVC 模式构建。模型 (api/models)、控制器 (api/controllers) 和视图 (views) 有单独的文件夹。

您在服务中使用数据库方法是正确的。
超过一个控制器操作可能需要的任何东西都应该进入服务。

其他想法:

  • 处理单个模型的任何逻辑都应该在该模型中
  • 更喜欢在数据库级别应用约束和外键
  • 使用Node.js v7.6+,可以使用async/await。 Sails(水线)方法 return Bluebird 承诺与 async/await.
  • 配合良好