myex-cli
Version:
Opinionated Express.js framework with CLI tools
26 lines (22 loc) • 761 B
JavaScript
import { logger } from '../utils/logger.js';
/**
* Middleware to log all incoming requests
* @param {import('express').Request} req - Express request object
* @param {import('express').Response} res - Express response object
* @param {import('express').NextFunction} next - Express next function
*/
export const requestLogger = (req, res, next) => {
const startTime = new Date();
// Log request details
logger.http(
`${req.method} ${req.url} [${req.ip}] - ${req.get('user-agent') || 'Unknown'}`
);
// Capture response to log its status code
res.on('finish', () => {
const duration = new Date() - startTime;
logger.http(
`Response: ${req.method} ${req.url} ${res.statusCode} - ${duration}ms`
);
});
next();
};