Как обернуть Express Middleware базовым Middleware - PullRequest
0 голосов
/ 06 ноября 2019

Как обернуть промежуточное ПО 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, res, next);
  };
}

module.exports = BaseMiddleware;

И затем ... в другом файле промежуточного программного обеспечения:

module.exports = BaseMiddleware(myCustomMiddleware);   

Это не срабатывает правильноподумал. Похоже, что это в бесконечном цикле.

1 Ответ

0 голосов
/ 06 ноября 2019

Я только что сделал это на своем локальном компьютере:

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));

И все прошло правильно, при этом правильно регистрируясь:

middleware: mw run
inside mw
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...