Mar*_*tin 1 middleware node.js express
我创建了一些带有一些逻辑的标准中间件,根据逻辑我需要调用一些第三方中间件。
中间件是使用 app.use() 添加的,这是我添加自定义中间件的地方。
一旦进入我的中间件,我就无法再访问 app.use(),如何调用中间件?
这是一些代码:
有任何想法吗 ?
const customerData = (req, res, next) => {
try {
console.log('Started');
if (process.env.STORE_CUSTOMER_DATA === 'true') {
// Here is some custom middleware that doesn't belong to me
//
// Returns a function (I confirmed it) ready to be called with res,req, next
//
let externalMiddlware = logger({
custom:true
});
// Do I return it ? Call it ? Trying everything and nothing seems to work
externalMiddlware(req,res,next); // ???
} else {
// DO not call external middleware, will break out of if and then call next()
}
console.log('Finished');
next();
} catch (err) {
next(err);
}
};
module.exports = customerData;
Run Code Online (Sandbox Code Playgroud)
我认为这应该可行,但如果您将回调委托给其他 externalMiddlware,则不应在 customerData 中调用 next() 使用此第三个中间件
那么你尝试过吗
const customerData = (req, res, next) => {
try {
console.log('Started');
if (process.env.STORE_CUSTOMER_DATA === 'true') {
let externalMiddlware = logger({
custom:true
});
return externalMiddlware(req,res,next);
} else {
return next(); // <= next moved
}
} catch (err) {
next(err);
}
};
module.exports = customerData;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4913 次 |
| 最近记录: |