`req.options`在SailsJS中的用途是什么?

时间:2014-06-18 18:16:24

标签: sails.js

req.optionsSailsJs中的目的是什么?

从源头上看,似乎我可以某种方式使用策略来改变Sails蓝图上的现有参数,等等。这是如何工作的?我根本找不到任何文件。

1 个答案:

答案 0 :(得分:4)

在Sails v0.10中引入了

req.options作为向自定义路由添加选项的方法。例如,您可以随时执行:

'GET /userList': {
    controller: 'UserController', 
    action: 'find'
}

指向User模型的默认“find”操作,但无法控制查询 - 它总是只返回所有记录。现在你可以做到:

'GET /userList': {
    controller: 'UserController', 
    action: 'find',
    sort: 'name desc',
    where: {name: {startsWith: 'j'}}
}

并且所有选项(包括controlleraction)都将添加到req.options,默认蓝图操作会使用这些选项来修改查询。请注意与Sails v0.9.x的区别,后者使用req.target来跟踪控制器和操作。

正如您所指出的,req.options也可以在策略中修改,而不是在每个策略和控制器操作之前重置的req.params。例如,这可以用于根据用户的角色进一步限制查询的条件。

显然v0.10.x的文档还没有完全完成(并且总是会有所改进),但这绝对可以在Route Target Syntax部分找到一个位置......