禁用默认的sails.js路由

4
我正在创建一个基本的Sails.js应用程序,并尝试禁用sails.js中的默认路由系统。文档这里似乎表明它可以在/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访问。
3个回答

7
问题有些棘手。您试图打开Controller.index方法。 同时,您禁用了所有操作的路由。
但实际上,在0.10.5版的Sails.js中,还有一项额外的配置可以禁用控制器的index路由。 它的名称:index。
因此,您禁用了除index之外的所有自动路由...
要禁用所有自动路由,您必须设置:
_config: {
    actions: false,
    shortcuts: false,
    rest: false,

    index: false
}

看起来有人忘记将此添加到文档中。


就是这样!它似乎也可以在全局级别上工作,从/config/blueprints.js文件中。 - t3rminus
谢谢,希望这个能在文档中找到! - Dan Smart
现在不需要添加“index:false”,它可以正常工作。这适用于全局和控制器特定的配置。 - securecurve

0

如果要禁用为模型生成的默认rest路由,您应该在文件/config/blueprints.js中设置rest: false

此解决方案适用于Sails V1.x

  /***************************************************************************
  *                                                                          *
  * Automatically expose RESTful routes for your models?                     *
  *                                                                          *
  ***************************************************************************/

  rest: false,

0

您可以通过使用config文件夹下的策略来实现此操作。

module.exports.policies = {
    YourControllerName: {
        'find': true,
        '*': false
    }
}

可能,但是如果我想通过不同(自定义)的路由公开控制器呢?即我想让FooController可以通过/foostuff访问,而不是/foo? - t3rminus
你可以通过使用/config/route.js来完成,参见文档链接 - hasan3050

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接