Есть ли способ создать собственный формат журнала в express.js, используя Morgan-body? - PullRequest
0 голосов
/ 07 июня 2018

Я использую morgan-body для регистрации HTTP-запросов и ответов в моем приложении node.js / express.Записи журнала, созданные этим промежуточным программным обеспечением, состоят из заголовков HTTP полного запроса и ответа, что является слишком многословным для моих нужд.

Это мой фрагмент кода morgan-body:

const express = require('express');
const app = express();
const parser = require('body-parser');
const morganBody = require('morgan-body');

// snipped configuration for other middleware
app.use(parser.json());
app.use(parser.urlencoded({ extended: false }));

morganBody(app, {
  noColors: true,
  maxBodyLength: 65535,
  stream: this.responseStream
});

Как и существующийЗапись в журнале слишком многословна. Мне нужно создать для них собственный формат, например

timestamp: fruit-name: info: status: Pass message: no damage

Поля "status" и "message" находятся в response.body.

I 'Я нашел решение этой проблемы, но я застрял.Есть ли способ для morgan-body составить собственное сообщение?Если есть альтернативное промежуточное программное обеспечение, которое может достичь того, что мне нужно, оно будет приветствоваться.

1 Ответ

0 голосов
/ 19 июля 2018

Вместо использования morgan-body это может быть легко достигнуто с помощью библиотеки morgan .

Вы можете сделать это путем создания пользовательских токенов.

Вот возможное решение:

const express = require('express');
const app = express();
const morgan = require('morgan');

morgan.token('status', function (req, res) { return res.body.status })
morgan.token('message', function (req, res) { return res.body.message })
morgan.token('fruit-name', function (req, res) { return res.body.fruit-name })
morgan.token('timestamp', function (req, res) { return res.body.timestamp })


app.use(morgan('Timestamp\: :timestamp fruit-name\: :fruit-name Status\: :status Message\: :message'))

Это должно создать пользовательскую строку для вашего журнала!

...