Estoy usando la biblioteca 'morgan' para registrar mi solicitud, el tiempo que lleva y el tamaño de la respuesta.
Pero, para una solicitud POST, ¿hay alguna forma de registrar la solicitud POST y el tamaño de su cuerpo cuando se recibe?
Aquí está el fragmento de código de muestra de trabajo que necesita agregar a su app.js :
morgan.token('body', (req, res) => JSON.stringify(req.body)); app.use(morgan(':method :url :status :response-time ms - :res[content-length] :body - :req[content-length]'));Después de revisar la documentación de Morgan durante aproximadamente una hora, encontré una buena solución al problema.
En lugar de usar morgan-body , el registro se puede realizar usando la propia biblioteca morgan en el momento de la solicitud. Incluso la longitud del cuerpo POST se puede registrar con bastante facilidad.
Así es como se puede hacer:
app.use(morgan({format: 'POST body length in bytes :req[Content-Length]', immediate: true}))Aquí, la opción 'formato' define el formato del registro y la opción 'inmediato' escribe el registro en el momento en que se recibe la solicitud
Puede usar morgan-body , esto captura todos los tipos de solicitud, ya sea publicar u obtener
import morganBody from 'morgan-body'; import express from 'express'; import bodyParser from 'body-parser'; const app = express(); // must parse body before morganBody as body will be logged app.use(bodyParser.json()); // hook morganBody to express app morganBody(app);