首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用基础中间件包装Express中间件

如何使用基础中间件包装Express中间件
EN

Stack Overflow用户
提问于 2019-11-07 01:14:38
回答 1查看 389关注 0票数 0

如何将Express中间件包装在一个通用的中间件中?例如,如果我想登录到New Relic并在所有中间件中进行一些日志记录。

代码语言:javascript
复制
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, res, next);
  };
}

module.exports = BaseMiddleware;

并then..in另一个中间件文件:

代码语言:javascript
复制
module.exports = BaseMiddleware(myCustomMiddleware);   

这并没有触发正确的思考。它看起来像是在一个无尽的循环中。

EN

回答 1

Stack Overflow用户

发布于 2019-11-07 01:24:45

我只是在我的本地机器上做了以下操作:

代码语言:javascript
复制
function BaseMiddleware(wrappedMiddleware) {
  return (req, res, next) => {
    console.log(`middleware: ${wrappedMiddleware.name} run`);
    return wrappedMiddleware(req, res, next);
  };
}

function mw(req, res, next) {
  console.log('inside mw');
  next();
}

app.use(BaseMiddleware(mw));

这一切都是正确的,它正确地记录了:

代码语言:javascript
复制
middleware: mw run
inside mw
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58735368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档