I have installed response-time on my development environment
main.ts
app.use(
responseTime((req: any, res: any, time: any) => {
console.log(`${req.method} ${req.url} ${time}`);
})
);
And api.ts
router.post('/disconnect', async (req, res, next) => {
.....
next();
});
But the problem is console.log(${req.method} ${req.url} ${time}); is not displaying on console when i hit API endpoint? what am i missing
Have you tried putting the response-time middleware assignment before the router assignment? As far as I can see the order makes a difference.
I've tested this out and the following trivial code works.
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);
If I do:
curl -X POST http://localhost:3000/router/disconnect
I see a log output like:
POST /disconnect 2.5177
But if I switch the order of the middleware like so:
app.use('/router/', router);
app.use(
responseTime((req, res, time) => {
console.log(`${req.method} ${req.url} ${time}`);
})
);
I don't see any output at all.