Express:为 app.use 抽象中间件
Express: abstracting away middleware for app.use
我想从我的 index.js
中的这段代码开始
app.use(require('sass-middleware').middleware({
src: path.resolve(__dirname, '../'),
dest: path.resolve(__dirname, '../public')
}));
app.use(require('browserify-dev-middleware')({
src: path.resolve(__dirname, '../'),
transforms: [require('jadeify')]
}));
对此:
app.use(require('asset-pipeline-dev-middelware'));
但我只是不知道如何使传递给 app.use 的函数成为其他两个中间件函数的代理。
这样的东西填错了,还是没问题?
require('asset-pipeline-dev-middelware')(app);
您可以像这样对中间件进行分组:
//asset-pipeline-dev-middelware.js
var middleware1 = require('first-middleware')
var middleware2 = require('second-middleware')
function(req, res, next){
middleware1(req, res, function(err){
if(err) return next(err);
middleware2(req, res, next)
})
}
然后像您提到的那样在应用程序中使用它:
app.use(require('asset-pipeline-dev-middelware'));
这也有效,因为 app.use
可以处理数组
// asset-pipeline-dev-middelware.js
var middleware1 = require('first-middleware')
var middleware2 = require('second-middleware')
module.export = [middleware1, middleware2];
// index.js
app.use(require('asset-pipeline-dev-middelware'));
我想从我的 index.js
中的这段代码开始app.use(require('sass-middleware').middleware({
src: path.resolve(__dirname, '../'),
dest: path.resolve(__dirname, '../public')
}));
app.use(require('browserify-dev-middleware')({
src: path.resolve(__dirname, '../'),
transforms: [require('jadeify')]
}));
对此:
app.use(require('asset-pipeline-dev-middelware'));
但我只是不知道如何使传递给 app.use 的函数成为其他两个中间件函数的代理。
这样的东西填错了,还是没问题?
require('asset-pipeline-dev-middelware')(app);
您可以像这样对中间件进行分组:
//asset-pipeline-dev-middelware.js
var middleware1 = require('first-middleware')
var middleware2 = require('second-middleware')
function(req, res, next){
middleware1(req, res, function(err){
if(err) return next(err);
middleware2(req, res, next)
})
}
然后像您提到的那样在应用程序中使用它:
app.use(require('asset-pipeline-dev-middelware'));
这也有效,因为 app.use
可以处理数组
// asset-pipeline-dev-middelware.js
var middleware1 = require('first-middleware')
var middleware2 = require('second-middleware')
module.export = [middleware1, middleware2];
// index.js
app.use(require('asset-pipeline-dev-middelware'));