在sails.js应用程序中有一种简单的方法来包含express-middleware
?
例如,使用express-validator
扩展请求对象。
答案 0 :(得分:12)
在sails应用程序中添加express-middleware很简单。
制定新政策。
policies
|_
middleware.js / .coffee
添加快速中间件 YOUR_MIDDLE_WARE_FILE_NAME.js
在中间件文件中,我们为node.js
创建标准导出module.exports = require('middle-ware')(OPTIONS_GO_HERE) // See middleware docs for configuration settings.
然后,一旦您创建了中间件,您就可以通过遵循Sails.js协议将其应用于所有请求或单个控制器。
整个申请 policies.js
module.exports.policies = {
'*':['middleware'] // node same name as file without extention
}
单一控制器操作 policies.js
module.exports.policies = {
RabbitController:{
feed:['middleware']
}
}
答案 1 :(得分:7)
首先,@ SkyTecLabs的答案是正确的方法。但我想补充一点,在某些情况下,你可能还需要控制你的静态文件(图像,客户端javascript,css等)(我最近不得不处理这个问题)。在这种情况下,您可以将中间件一般应用于每个路由。
从Sails.js v0.9.3开始,你可以这样做:
// Put this in `config/express.js`
module.exports.express = {
customMiddleware: function (app) {
app.use(require('../node_modules/sails/node_modules/express').basicAuth('balderdash', 'wickywocky'));
}
};
更多信息:https://gist.github.com/mikermcneil/6255295
如果您希望中间件在一个或多个控制器或操作之前运行,那么使用策略方法肯定会更好![/ p>