我仍然难以理解如何向sails.js添加中间件.我听说过使用policies.js,创建自定义策略,添加到local.js等.所以有人可以告诉我如何将jquery-file-upload-middleware添加到sails 应用程序中.提前致谢
sgr*_*454 14
在以前的Sails版本中,这将非常困难,因为您无法控制包含自定义中间件的顺序.在v0.10中,它有点困难.
注意:以下内容适用于Sails(v0.10.x)的测试版,可通过安装npm install sails@beta.
将自己的自定义中间件插入Sails就像customMiddleware在config/express.js文件中添加一个函数一样简单app; 你可以app.use随心所欲.这种方法的缺点是它无法控制何时包含中间件.值得注意的是,它包含在身体解析器之后,这对您的情况不起作用.
在最新版本的Sails中,您可以通过实现方法来覆盖所有中间件加载.的参数是,(该组的中间件函数帆通常默认包括),以及(全球帆对象的引用).首先看一下默认的核心实现 - 您可能希望复制相同的订单.所以在你的,你有类似的东西:loadMiddleware/config/express.jsappdefaultMiddlewaresails/config/express.js
var upload = require('jquery-file-upload-middleware');
// configure upload middleware
upload.configure({
uploadDir: __dirname + '/public/uploads',
uploadUrl: '/uploads',
imageVersions: {
thumbnail: {
width: 80,
height: 80
}
}
});
module.exports.express = {
loadMiddleware: function(app, defaultMiddleware, sails) {
// Use the middleware in the correct order
app.use(defaultMiddleware.startRequestTimer);
app.use(defaultMiddleware.cookieParser);
app.use(defaultMiddleware.session);
// Insert upload file handler
app.use('/upload', upload.fileHandler());
app.use(defaultMiddleware.bodyParser);
app.use(defaultMiddleware.handleBodyParserError);
app.use(defaultMiddleware.methodOverride);
app.use(defaultMiddleware.poweredBy);
app.use(defaultMiddleware.router);
app.use(defaultMiddleware.www);
app.use(defaultMiddleware.favicon);
app.use(defaultMiddleware[404]);
app.use(defaultMiddleware[500]);
}
...etc...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3212 次 |
| 最近记录: |