如何将政策应用于错误?

时间:2014-02-18 16:13:19

标签: node.js sails.js

我有一个名为“user”的控制器和一个名为“signup”的操作,然后我有一个名为“stripSlashes”的策略,其代码如下:

module.exports = function(req, res, next) {
  if(req.url.substr(-1) === '/' && req.url.length > 1){
    res.redirect(req.url.slice(0, -1), 301);
  }
  else {
    next();
  }
};

我想要做的是,每当访问http://localhost:{{port}}/user/signup/时,它都会删除斜线并重定向到:http://localhost:{{port}}/user/signup这完美无缺!

除此之外,每当我尝试访问http://localhost:{{port}}/user/signup/////时,它只会抛出404,甚至不会运行我在config / policies.js中设置的任何策略

所以,我的问题是如何将自定义政策应用于所有方面,包括错误页面(即404)

先谢谢!


Policies.js供参考:

module.exports.policies = {

  '*': ['flash', 'stripSlashes', 'wwwRedirect'],

  user: {
    edit: ['flash', 'isAuthenticated', 'stripSlashes', 'wwwRedirect'],
    update: ['flash', 'isAuthenticated', 'stripSlashes', 'wwwRedirect'],
    show: ['flash', 'isAuthenticated', 'stripSlashes', 'wwwRedirect'],
    index: ['flash', 'isAuthenticated', 'stripSlashes', 'wwwRedirect'],
    destroy: ['flash', 'isAuthenticated', 'stripSlashes', 'wwwRedirect'],
  },


}

1 个答案:

答案 0 :(得分:1)

策略必须匹配要应用的策略的路由。如果要将此规则应用于所有api端点,则可以使用快速自定义中间件。请参阅此处的堆栈溢出答案:Modify response header with sails.js for implementing HSTS

相关问题