我仍然很难理解如何将中间件添加到sails.js。我听说过使用policy.js,创建自定义策略,添加到local.js等。所以有人可以告诉我如何将jquery-file-upload-middleware添加到Sails应用程序中。提前致谢
在Sails的早期版本中,这将非常困难,因为您无法控制包含自定义中间件的顺序。在v0.10中,这有点困难。
注意:以下内容适用于Beta版的Sails(v0.10.x),可通过安装npm install sails@beta
。
在Sails中插入自己的自定义中间件就像customMiddleware
在config/express.js
文件中添加一个函数app
作为参数一样简单;然后您就可以放心app.use
了。这种方法的缺点是,它不能让您控制何时包括中间件。值得注意的是,它包含在主体解析器之后,不适用于您的情况。
在最新版本的Sails中,可以通过实现中的方法来覆盖所有中间件加载。参数为,(Sail通常默认情况下通常包括的一组中间件函数)和(对全局Sails对象的引用)。首先看一下默认的核心实现-您可能想要复制相同的顺序。因此,在您的中,您将遇到以下内容:loadMiddleware
/config/express.js
app
defaultMiddleware
sails
/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...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句