Sails JS:如何将值从策略传递到控制器

Sails JS: How to pass value from policy to controller

我有一个检查请求是否具有完整有效正文的政策。我想向控制器发送一个值来确定结果是通过还是失败。有什么办法可以实现吗?

策略获取请求对象作为输入,您可以在将其发送到控制器之前修改该对象,即通过请求对象搭载您的数据。

你可以在政策中做这样的事情:

req.body.paramname = 'newval';

并且在controller中,可以得到值

var paramFromPoliy =  req.body.paramname;

如果策略失败,为什么要完全将控制权交给控制器?通常,像您描述的那样的策略的要点是在策略失败时转移程序流,也许是错误页面。无论如何,最好使用 req.options:

来完成您要查找的内容

req.options allows altering of (or providing defaults for) request parameters without modifying the original object.

您可以在策略中的 req.options 中设置一个值,然后在您的控制器中读回该值,而无需修改实际请求。