Lección 9 de 12 · Lectura y práctica
Manejo centralizado de errores
Lección práctica para aplicar Manejo centralizado de errores dentro de Construcción de APIs RESTful con Node.js y Express, con criterios de decisión, ejemplo guiado, ejercicio y checklist de salida.
Del concepto a la práctica
Taller de esta lección
Un manejador centralizado evita que cada controlador invente un formato distinto y permite ocultar detalles internos. En una API de reservas, un error de dominio como “cupo completo” puede exponerse con un código estable, mientras que el mensaje de una excepción de base de datos debe quedar en los registros del servidor, no en la respuesta pública.
Ejemplo resuelto
Un controlador puede ejecutar next(new Error('CUPO_COMPLETO')). El middleware final recibe (err, req, res, next), identifica ese código y responde 409 con { "error":"CUPO_COMPLETO" }. Para un error desconocido responde 500 con { "error":"INTERNAL_ERROR" }; el detalle se registra internamente sin incluir credenciales ni consultas.
Pruébalo
Define errores conocidos con código y estado.
Pasa errores asíncronos al flujo central. En Express 5, una Promise retornada que rechaza llega automáticamente a
next; los errores dentro de callbacks ajenos necesitan pasarse explícitamente. Consulta la versión de tu proyecto antes de aplicar el patrón.Coloca el middleware después de todas las rutas. Si
res.headersSentya es verdadero, delega conreturn next(err)en vez de intentar enviar otro JSON.Envía un caso de conflicto y uno inesperado controlado.
Error frecuente: llamar dos veces a res.json. Corrígelo retornando después de responder y dejando una sola capa responsable del formato final.
Comprueba tu resultado
El cupo completo produce 409 y el código estable. El caso inesperado produce 500 sin trazas ni mensajes de base de datos. Cada solicitud recibe una única respuesta y el registro interno conserva suficiente contexto para depurar.

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 ↗Sigue con Construcción de APIs RESTful con Node.js y 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.