我有一个名为“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'],
},
}
答案 0 :(得分:1)
策略必须匹配要应用的策略的路由。如果要将此规则应用于所有api端点,则可以使用快速自定义中间件。请参阅此处的堆栈溢出答案:Modify response header with sails.js for implementing HSTS