Función que se ejecuta antes o después de una petición en un servidor (auth, logs, validación).
Un middleware es una función que se ejecuta en el pipeline de procesamiento de una petición HTTP, entre la recepción de la request y el envío de la response. Casos de uso comunes: - Autenticación y autorización - Logging y métricas - Validación de datos - Rate limiting - CORS - Compresión de respuestas - Manejo de errores Los middlewares pueden modificar la request, la response, o terminar el ciclo de petición.
// authMiddleware.ts import { Request, Response, NextFunction } from 'express'; import jwt from 'jsonwebtoken'; export const authenticateToken = ( req: Request, res: Response, next: NextFunction ) => { const authHeader = req.headers['authorization']; const token = authHeader?.split(' ')[1]; // Bearer TOKEN if (!token) { return res.status(401).json({ error: 'Token requerido' }); } try { const decoded = jwt.verify(token, process.env.JWT_SECRET!); req.user = decoded; next(); // Continúa al siguiente middleware/controller } catch (error) { res.status(403).json({ error: 'Token inválido' }); } }; // Uso en rutas app.get('/api/profile', authenticateToken, profileController);