Saltar al contenido

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

js
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

  1. Coloca el logger antes de las rutas.

  2. Añade una ruta que llame a next(new Error('fallo')).

  3. 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.

Navegador, API y base de datos conectados por solicitudes, consultas y respuestas en sentidos opuestos.
CursaloMapa de práctica
Del navegador a los datos

El 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.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.