如何在sails中实现MVC模式?

亲亲

我想知道实现 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 (Waterline) 方法返回 Bluebird 承诺,它适用于 async/await。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章