禁用默认帆.js航线

Disabling default sails.js routes

本文关键字:js 航线 默认      更新时间:2023-09-26

我正在设置一个基本的 Sails.js 应用程序,并且我正在尝试禁用 sails.js 中的默认路由系统。此处的文档似乎表明可以通过设置module.exports.blueprints = { actions: false };/config/blueprints.js文件中禁用它

但是,当我执行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访问

这个问题有点棘手。您正在尝试打开控制器.索引方法。同时,您将禁用所有操作的路由。

但实际上 Sails.js 在 0.10.5 中具有禁用来自控制器的索引路由的额外配置。它的名字:索引。

因此,您禁用了除索引之外的所有操作的自动路由。

要禁用所有自动路由,您必须设置:

_config: {
    actions: false,
    shortcuts: false,
    rest: false,
    index: false
}

似乎有人忘记将其添加到文档中。

您可以使用配置文件夹下的策略来执行此操作。

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

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

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

  /***************************************************************************
  *                                                                          *
  * Automatically expose RESTful routes for your models?                     *
  *                                                                          *
  ***************************************************************************/
  rest: false,