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