为参数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

如果您希望中间件在您的一个或多个控制器或操作之前运行,那么使用策略方法绝对会更好!