Sails.js 正确使用SailsJs策略、服务和模型

Sails.js 正确使用SailsJs策略、服务和模型,sails.js,sails-mongo,Sails.js,Sails Mongo,我对NodeJs和SailsJs都是新手,所以要乖一点 我一直在使用策略来完成一个POST请求,该请求最终将创建一个新模型 检查所有请求参数是否存在的策略,如果缺少任何参数,则使用404或类似命令进行响应 策略,该策略调用服务以检查数据库中是否存在某个模型,以及该模型是否具有执行请求的正确状态。此策略可能会将其他参数添加到请求中,以便在以后创建新模型时使用 对于不同的型号,同上 现在我们知道这两个模型已经存在并且正确,我们可以使用步骤3和步骤4中使用的类似服务来修改它们 为新创建的模型调用OnC

我对NodeJs和SailsJs都是新手,所以要乖一点

我一直在使用策略来完成一个POST请求,该请求最终将创建一个新模型

  • 检查所有请求参数是否存在的策略,如果缺少任何参数,则使用404或类似命令进行响应
  • 策略,该策略调用服务以检查数据库中是否存在某个模型,以及该模型是否具有执行请求的正确状态。此策略可能会将其他参数添加到请求中,以便在以后创建新模型时使用
  • 对于不同的型号,同上
  • 现在我们知道这两个模型已经存在并且正确,我们可以使用步骤3和步骤4中使用的类似服务来修改它们
  • 为新创建的模型调用OnCreate现在我们的所有策略都已通过,这将对新创建的模型进行一些最终修改 为了检查请求并向请求添加其他参数,策略似乎是个好主意。但这似乎有点麻烦。在最终修改其他模型之前,我需要检查所有内容

    这似乎是交易将有助于在这里,因为这将允许我检查和更新所有在同一时间


    我在用MongoDb

    我也是帆船新手。我使用策略只是为了验证并在请求中插入用户(当我需要时)。对于其他验证,我在创建(…)之前使用

    我也是SailsJS新手。我使用策略只是为了验证并在请求中插入用户(当我需要时)。对于我在创建(…)之前使用的其他验证,

    可能值得我引用“行动中的风帆”,因为我今天早上实际上在阅读他们的最佳策略实践

    策略不应该是业务逻辑的核心部分 策略不是构建应用程序逻辑的好工具。这样使用它们 使它们与原始的Express/Connect中间件一样通用——不幸的是 这也使得它们同样危险,而且是特定于开发人员的。如果您使用策略来帮助 使用查询,或创建复杂的策略链来管理中的权限系统 在你的应用程序中,你可能会创建一个代码库,这对于其他任何应用程序来说都是非常困难的 开发人员需要理解

    话虽如此,它继续建议:

    策略不是构建应用程序逻辑的好工具。这样使用它们 使它们与原始的Express/Connect中间件一样通用——不幸的是 这也使得它们同样危险,而且是特定于开发人员的。如果您使用策略来帮助 使用查询,或创建复杂的策略链来管理中的权限系统 在你的应用程序中,你可能会创建一个代码库,这对于其他任何应用程序来说都是非常困难的 开发人员需要理解

    基于以上引述,我认为你质疑保单的使用是正确的。我认为你所描述的绝对是进入第一句话(接近尾声)所描述的世界的边缘

    对我来说,如果可能的话,我会打电话给服务部。本质上,如果我在多个文件中使用了3次以上的代码,那么它需要存在于一个服务中。如果代码对每个操作都是自定义的,那么坐在控制器中就可以了。参数检查属于控制器操作,除非您构建了一个服务,您可以向其中提供一些选项进行验证

    我检查了控制器中的参数,但您认为在什么时候在模型级别执行验证更有用?无论接收到什么,模型都需要满足其具有有效属性的要求。也许可以将逻辑移到更接近您的模型的位置,并退出服务领域

    很高兴进一步讨论,sails的好处是从来没有一个最佳实践,但是一些人以前已经感受到了痛苦,可以提供一些指导

    不要看参数- 真正可重用的策略应该只查看req.session和数据库,而不是 参数!依赖参数使策略上下文特定,并且仅可用 在非常特殊的情况下。既然如此,为什么不把代码放在 相关行动


    也许值得我引用《风帆行动》中的话,因为我今天早上实际上正在阅读他们的最佳政策实践

    策略不应该是业务逻辑的核心部分 策略不是构建应用程序逻辑的好工具。这样使用它们 使它们与原始的Express/Connect中间件一样通用——不幸的是 这也使得它们同样危险,而且是特定于开发人员的。如果您使用策略来帮助 使用查询,或创建复杂的策略链来管理中的权限系统 在你的应用程序中,你可能会创建一个代码库,这对于其他任何应用程序来说都是非常困难的 开发人员需要理解

    话虽如此,它继续建议:

    策略不是构建应用程序逻辑的好工具。这样使用它们 使它们与原始的Express/Connect中间件一样通用——不幸的是 这也使得它们同样危险,而且是特定于开发人员的。如果您使用策略来帮助 使用查询,或创建复杂的策略链来管理中的权限系统 在你的应用程序中,你可能会创建一个代码库,这对于其他任何应用程序来说都是非常困难的 开发人员需要理解

    基于以上引述,我认为你质疑保单的使用是正确的。我认为你所描述的绝对是进入第一句话(接近尾声)所描述的世界的边缘

    对我来说,如果可能的话,我会打电话给服务部。本质上,如果我在多个文件中使用了3次以上的代码,那么它需要存在于一个服务中。如果代码对每个操作都是自定义的,那么坐在控制器中就可以了。参数检查属于控制器操作,除非您构建了一个服务,您可以向其中提供一些选项进行验证

    我去登记一下