策略仅应用于您明确指定给它们的控制器config/policies.js.
尝试直接添加快速中间件,而不是使用策略,config/express.js(如果文件尚不存在,则创建该文件).此中间件适用于所有控制器.格式如下:
// config/express.js
"use strict";
exports.express = {
customMiddleware: function (app) {
app.use(function hsts(req, res, next) {
res.setHeader("Strict-Transport-Security", "max-age=31536000");
next();
});
}
}
Run Code Online (Sandbox Code Playgroud)
如果您有多个要使用的快速自定义中间件,我的建议是将每个中间件功能保存在自己的文件中.我将提供一个示例,使用您的中间件以及接受某些选项的其他中间件.
// config/express.js
"use strict";
var hsts = require('../lib/middleware/hsts');
var staticguard = require('../lib/middleware/staticguard');
exports.express = {
customMiddleware: function (app) {
// ordering of middleware matters!
app.use(hsts);
app.use(staticguard(/^\/protected\/.*$/));
}
}
// lib/middleware/hsts.js
"use strict";
module.exports = function hsts(req, res, next) {
res.setHeader("Strict-Transport-Security", "max-age=31536000");
next();
}
// lib/middleware/staticguard.js
"use strict";
module.exports = function (regex) {
return function (req, res, next) {
if (!regex.test(req.url)) {
return next();
}
res.end('you are not allowed!');
}
};
Run Code Online (Sandbox Code Playgroud)
如果你试图让多个文件在'express.customMiddleware'命名空间中导出一个函数,我相信只加载最后一个文件的middleWare就可以了.我没有尝试过.
| 归档时间: |
|
| 查看次数: |
2914 次 |
| 最近记录: |