He instalado el tiempo de respuesta en mi entorno de desarrollo.
principal.ts
app.use( responseTime((req: any, res: any, time: any) => { console.log(`${req.method} ${req.url} ${time}`); }) );y api.ts
router.post('/disconnect', async (req, res, next) => { ..... next(); }); Pero el problema es console.log( ${req.method} ${req.url} ${time} ); ¿No se muestra en la consola cuando llego al punto final de la API? Qué me estoy perdiendo
¿Ha intentado poner la asignación de middleware de tiempo de respuesta antes de la asignación del enrutador? Por lo que puedo ver, el orden hace la diferencia.
He probado esto y funciona el siguiente código trivial.
const express = require('express') const responseTime = require('response-time') const router = express.Router() const app = express() app.use( responseTime((req, res, time) => { console.log(`${req.method} ${req.url} ${time}`); }) ); app.use('/router/', router); router.post('/disconnect', async (req, res, next) => { res.send('POST'); next(); }); app.listen(3000);Si lo hago:
curl -X POST http://localhost:3000/router/disconnectVeo una salida de registro como:
POST /disconnect 2.5177Pero si cambio el orden del middleware así:
app.use('/router/', router); app.use( responseTime((req, res, time) => { console.log(`${req.method} ${req.url} ${time}`); }) );No veo ninguna salida en absoluto.