我正在设置一个基本的Sails.js应用程序,我正在尝试禁用sails.js中的默认路由系统。文档here似乎表明可以通过设置/config/blueprints.js
module.exports.blueprints = { actions: false };
文件中禁用该文档
但是,当我执行sails lift
时,我仍然可以在/foo
编辑:这是使用Sails v0.10.5,除了以下两个文件之外没有任何更改。
/** /api/controllers/FooController.js **/
module.exports = {
index: function(req, res) {
return res.send("blah blah blah");
}
};
/** /config/blueprints.js **/
module.exports.blueprints = {
actions: false,
rest: false,
shortcuts: false,
prefix: '',
pluralize: false,
populate: false,
autoWatch: true,
defaultLimit: 30
};
此外,如果我在每个控制器的基础上禁用蓝图,则问题仍然存在:
/** /api/controllers/FooController.js **/
module.exports = {
_config: { actions: false, shortcuts: false, rest: false },
index: function(req, res) {
return res.send("blah blah blah");
}
};
仍可在/foo
答案 0 :(得分:7)
这个问题有点棘手。您正在尝试打开Controller.index方法。 同时,您将禁用所有操作的路由。
但实际上0.10.5中的Sails.js具有禁用来自控制器的索引路由的附加配置。 它的名字:索引。
因此您为除索引之外的所有操作禁用了自动路由。
要禁用您必须设置的所有自动路线:
_config: {
actions: false,
shortcuts: false,
rest: false,
index: false
}
似乎有人忘记将其添加到文档中。
答案 1 :(得分:0)
您可以使用 config 文件夹下的政策来执行此操作。
module.exports.policies = {
YourControllerName: {
'find': true,
'*': false
}
}