策略获取请求对象作为输入,您可以在将对象发送到控制器之前修改该对象,即通过请求对象搭载数据。
你可以在政策中做这样的事情:
req.body.paramname = 'newval';
在控制器中,您可以获得价值
var paramFromPoliy = req.body.paramname;
如果策略失败,为什么要将控制权传递给控制器呢?通常,您所描述的策略的目的是在策略失败时转移程序流,也许转移到错误页面。在任何情况下,您正在寻找的是最好的使用 req.options :
req.options
req.options允许在不修改原始对象的情况下更改(或提供默认值)请求参数。
您可以在中设置值 req.options 在您的策略中,然后在您的控制器中读取它,而无需修改实际请求。