为参数validation添加快速中间件
在sails.js应用程序中是否有包含express-middleware
的简单方法?
例如用express-validator
扩展请求对象。
在sails应用程序中添加express-middleware很简单。
创build一个新的政策。
policies |_ middleware.js / .coffee
添加快捷中间件 YOUR_MIDDLE_WARE_FILE_NAME.js
在你的中间件文件中,我们创build了node.js的标准导出
module.exports = require('middle-ware')(OPTIONS_GO_HERE) // See middleware docs for configuration settings.
然后,一旦创build了中间件,就可以通过遵循Sails.js转发将它应用于所有请求或单个控制器。
整个应用程序 policies.js
module.exports.policies = { '*':['middleware'] // node same name as file without extention }
单一控制器操作 policies.js
module.exports.policies = { RabbitController:{ feed:['middleware'] } }
首先,@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
如果您希望中间件在您的一个或多个控制器或操作之前运行,那么使用策略方法绝对会更好!