Intenté crear un middleware de registrador personalizado sin ningún paquete o biblioteca. Es tan simple como guardar el punto final, el método y la respuesta del código de estado .
Tengo el problema cuando trato de guardar el código de estado, ya que mi respuesta aún no ha llegado al controlador. Estaba tratando de entender cómo lo hace morgan, porque es el primer middleware que uso y cuando mi backend responde, registra el código de estado.
¿Existe una manera simple sin que yo tenga que modificar todos mis controladores de back-end?
O más bien, ¿cómo puedo acceder al res.status de un controlador desde este middleware?
const createLog = (req, res, next) => { const { method, url } = req; const { statusCode, statusMessage } = res; console.log(statusCode, statusMessage); // Both null when reach the middleware next(); };Prueba esto aquí:
const createLog = (req, res, next) => { res.on("finish", function() { console.log(req.method, decodeURI(req.url), res.statusCode, res.statusMessage); }); next(); };