如何将策略绑定到Sails.js中的默认REST端点?

时间:2014-05-09 08:52:33

标签: javascript rest sails.js

所以, 我有一个User模型和一个UserController.js文件,但没有任何功能。 因此,默认的REST端点适用于用户模型..

现在,我可以通过将undergiven放在/config/policies.js文件中,在/ user上为REST POST请求设置策略:

UserController:{     "创建" :'已验证',     }

其中'已验证'是我定义的政策。 所以似乎"创造"映射到默认REST" post / user" ...

现在我的问题是如何为" get / user /:id"制定政策? ......? / user /:id?

是否有一个动词(比如在/ user上为POST创建)

我希望我足够清楚......

2 个答案:

答案 0 :(得分:6)

根据此http://beta.sailsjs.org/#!documentation/reference/Blueprints/Blueprints.html,这些是蓝图中可用的默认操作:

-find
-findOne
- 创建
-update
-destroy
-populate
-add
-remove

答案 1 :(得分:2)

在Sails中,策略旨在应用于控制器而非单个路由。值得庆幸的是,该框架足够灵活,可以找到类似这样的解决方法。

有几种方法可以做到这一点。无论哪种方式,您都需要在config/routes.js中的路径配置文件中捕获http请求。

如果您只需要对路由/方法应用一个策略,最简单的方法是将其直接放在路由配置文件中。例如。

module.exports.routes = {
'/': {
    view: 'homepage'
},
'get /user': function(req,res,next){
    console.log('I made a get request!! ')
},
'post /user': function(req,res,next){
    console.log('I made a post request!! ')
}

};

如果您想对路线/方法应用多个政策,或者您希望将政策保留在政策文件夹中,请尝试以下内容。

var policyOne = require('../api/policies/policyOne');
var policyTwo = require('../api/policies/policyTwo');

module.exports.routes = {
    '/': {
        view: 'homepage'
    },
    'get /user': [policyOne,policyTwo]
};