【问题标题】:How to restrict http request type in sails.js?如何限制sails.js 中的http 请求类型?
【发布时间】:2016-05-21 10:45:58
【问题描述】:

在sailsjs blueprint api中,action route默认响应所有四种类型的请求——GET、POST、PUT、DELETE。我想只拒绝某些类型的路由请求,同时允许其他请求通过。例如,我可能希望只接受对 /foo/bar 的 bar 操作的 POST 请求,而拒绝对该路由的 GET、PUT 和 DELETE 请求。

虽然策略可用于限制控制器操作。

FooController: { 酒吧:假, },

但是,这里基于相同的条件,拒绝所有 4 种请求或允许所有 4 种请求。我想要的是始终拒绝 4 种类型的请求中的 3 种,同时始终允许第 4 种类型通过。

是否可以在不禁用蓝图并手动将路由输入到 /config/routes.js 的情况下做到这一点?如果有怎么办?

【问题讨论】:

    标签: node.js express sails.js sails-mongo sails-orientdb


    【解决方案1】:

    这是您的路由文件 (/config/routes.js),而不是您确定的策略文件。

    'POST /page/link': YourControllerName.ActionName,
    'GET /': YourHomePageController.ActionName,
    'PUT /login': UserController.login
    

    前 2 个是显示语法的示例。最后一个示例显示了在控制登录表单提交的典型设置中的外观。如果您希望通过例如允许倍数POST 和 PUT 然后只需使用相同的 controller.action 添加另一行,但更改方法。

    更多示例和其他可以使用的语法请看这里:

    http://sailsjs.org/documentation/concepts/routes

    一旦你有了你想要的路线,你就需要关闭蓝图方法,如果你离开它会覆盖这些路线并仍然允许通过。

    转到您的 config/blueprint.js 文件并更改以下项目:

    actions: false
    rest: false
    shortcuts: false
    

    再次,可以在此处找到有关这些功能以及如何使用它们的更多信息:

    http://sailsjs.org/documentation/reference/configuration/sails-config-blueprints

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-27
      • 2014-08-19
      • 1970-01-01
      • 2013-12-13
      • 2013-07-15
      • 1970-01-01
      • 2018-12-30
      • 2014-08-13
      相关资源
      最近更新 更多