Lección 5 de 12 · Lectura y práctica
Middleware: auth, logs y errores sin repetir codigo
Middleware Middleware te permite aplicar logica transversal (auth/logs) sin duplicar en cada endpoint. Conceptos clave req/res/next Orden importa Error middleware Ejemplo app.use((req, _res, next) => { console.log(req.method,.
Del concepto a la práctica
Taller de esta lección
El orden del middleware define qué información existe cuando llega al controlador. Un registrador debe medir la solicitud y llamar a next; el manejador de errores debe quedar después de las rutas para recibir fallos propagados.
Ejemplo resuelto
app.use((req, res, next) => {
const start = Date.now();
res.on('finish', () => console.log(req.method, req.path, res.statusCode, Date.now() - start));
next();
});
// Registra las rutas aquí, antes del manejador de errores.
app.get('/fallo', (req, res, next) => next(new Error('fallo')));
app.use((err, req, res, next) => {
if (res.headersSent) return next(err);
res.status(500).json({ ok: false, error: { code: 'INTERNAL' } });
});El evento finish registra el estado real, no uno supuesto al entrar.
finish significa que Node entregó datos al sistema subyacente, no que el cliente los recibió. Registra close por separado si necesitas observar desconexiones. Express5 propaga rechazo de una Promise retornada; Express4 necesita catch(next) o un wrapper. La API key de prueba proviene del entorno y se valida sin imprimirla; una cabecera inventada no establece identidad sin verificación.
Pruébalo
Coloca el logger antes de las rutas.
Añade una ruta que llame a
next(new Error('fallo')).Coloca el manejador de errores al final y observa la respuesta.
Error frecuente: olvidar next() en un middleware normal. Corrige llamándolo una vez, salvo que la función ya haya enviado una respuesta.
Ejercicio: añade un middleware de API key para una ruta privada.
Comprueba tu resultado
una clave ausente produce 401 y una válida permite continuar; ambas solicitudes aparecen en el log.

Mapa de prácticaEl navegador envía una solicitud a la API. El servidor valida la operación y consulta los datos; después devuelve una respuesta que el navegador puede mostrar. La base de datos se comunica con el servidor y no directamente con el navegador.
Ver la infografía en tamaño completo ↗Middleware
Middleware te permite aplicar logica transversal (auth/logs) sin duplicar en cada endpoint.
Conceptos clave
- req/res/next
- Orden importa
- Error middleware
Ejemplo
app.use((req, _res, next) => {
console.log(req.method, req.url);
next();
});
app.use((err, _req, res, _next) => {
res.status(500).json({ ok: false, error: 'internal' });
});
Ejercicio
- Crea un middleware que requiera un header X-Api-Key.
- Agrega un middleware de error al final.
Checklist de mastery
- Uso middleware para no duplicar.
- Tengo un handler de error global.
Sigue con Node.js y APIs con Express
Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.
Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.