如何将Express中间件包装在通用中间件中?例如,如果我想登录到New Relic并在所有中间件中进行一些记录。
const newRelic = require('newrelic');
require('colors');
function BaseMiddleware(wrappedMiddleware) {
return (req,res,next) => {
newRelic.setTransactionName('middleware',wrappedMiddleware.name);
console.log(`middleware: ${wrappedMiddleware.name} run`.green);
return wrappedMiddleware(req,next);
};
}
module.exports = BaseMiddleware;
然后..在另一个中间件文件中:
module.exports = BaseMiddleware(myCustomMiddleware);
这没有引发正确的思考。似乎是一个无尽的循环。