【问题标题】:Sails.js calling one controller action from another and passing additional params in req.bodySails.js 从另一个控制器调用一个控制器动作并在 req.body 中传递额外的参数
【发布时间】:2014-08-07 13:27:12
【问题描述】:

我需要从另一个动作中调用控制器动作。到目前为止,我还没有被要求传递任何额外的参数和调用

sails.controllers.modelName.actionName(req, res)

完成这项工作。但是,这一次我需要向 req.body 添加新参数,以便调用控制器操作。有没有办法在风帆中做到这一点?

我确实尝试了here 指定的技巧,但问题是当我调用另一个控制器操作时,我在操作中所做的更改会丢失

编辑:如果我尝试在其他控制器操作中使用 req.body 访问参数,但如果我尝试使用 req.params.all() 访问它,则它不会工作

【问题讨论】:

    标签: model-view-controller sails.js waterline


    【解决方案1】:

    这不是在 Sails 中编写可重用代码的最佳实践。如果您发现自己想从另一个控制器调用一个控制器,您应该将共享代码移动到 service 并从 两个 控制器调用服务方法。

    无论如何,Sails 不允许您直接修改请求参数。您可以修改req.body,但实际上您应该在请求中修改的唯一内容是req.options,它就是为此目的而设计的。这样您就可以准确表示请求中实际收到的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 2011-02-26
      相关资源
      最近更新 更多