Получение тела ответа в Express Middleware - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь написать небольшой регистратор API в качестве промежуточного программного обеспечения Express.Регистратор собирает различную информацию из req и res, затем сохраняет файл JSON на диск, который можно прочитать позже.

Это моя текущая функция для хранения журналов.

function store(req, res, next) {
  init();

  const log = {
    request_url: req.hostname,
    request_body: req.body,
    request_method: req.method,
    request_headers: req.headers,
    api_endpoint: req.baseUrl,
    timestamp: moment().format('x')
  };

  res.on('finish', () => {
    log.response_body = res.body;
    log.response_status = res.statusCode;

    global.enoch_logs.push(log);

    fs.writeFile(`./logs/${ moment().format('x') }.json`, JSON.stringify(log), (err) => (err) ? console.log(err) : null);
  });

  next();
}

Проблема в том, что res.body всегда пусто.Я пробовал несколько разных методов для захвата тела ответа, но, похоже, ничего не работает.

Куда я иду не так?

...