Lección 6 de 12 · Lectura y práctica
Errores, status codes y logging
Respuesta rapida: Una API profesional usa status codes con intencion: 400 para input invalido, 401 para no autenticado, 403 para sin permiso, 404 para no encontrado y 500 para fallas internas. Que vas a construir Una API.
Del concepto a la práctica
Taller de esta lección
Los errores deben ser útiles para el cliente y para quien opera el sistema sin revelar detalles internos. Una política sencilla asigna 400 a entradas inválidas, 401 a ausencia de autenticación, 403 a permisos insuficientes, 404 a recursos inexistentes y 500 a fallos no previstos.
Ejemplo resuelto
Si GET /courses/c9 no encuentra registro, responde 404 con un código como COURSE_NOT_FOUND. El log interno puede incluir método, ruta, identificador de petición y duración, pero no una contraseña ni un token. Si la base de datos falla, el cliente recibe un mensaje genérico y el log conserva el contexto operativo permitido.
El manejador de errores conserva sus cuatro argumentos y se registra al final:
app.use((err, req, res, next) => {
if (res.headersSent) return next(err);
if (err.type === 'entity.parse.failed') {
return res.status(400).json({ error: 'INVALID_JSON' });
}
if (err.type === 'entity.too.large') {
return res.status(413).json({ error: 'BODY_TOO_LARGE' });
}
return res.status(500).json({ error: 'INTERNAL_ERROR' });
});Express 5 pasa al manejador los rechazos de una promesa devuelta por una ruta asíncrona. Errores en callbacks externos requieren propagación explícita con next(err); no se capturan por existir una función async en otro lugar. Registra internamente el ID y contexto permitido antes de responder, sin imprimir el body entero.
Pruébalo
Crea una tabla de escenarios y status esperado.
Usa un error centralizado para formar respuestas.
Añade un identificador de petición al log.
Revisa que los secretos no aparezcan en ninguna línea.
Error frecuente: devolver el mensaje de una excepción de base de datos. Corrígelo con un mensaje público estable y un detalle interno controlado.
Comprueba tu resultado
Verifica tres casos: body inválido produce 400, curso inexistente 404 y excepción simulada 500. En los tres logs debe existir método y ruta; en ninguno debe aparecer una credencial.

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 ↗Fuentes para profundizar
Que vas a construir
Una API profesional usa status codes con intencion: 400 para input invalido, 401 para no autenticado, 403 para sin permiso, 404 para no encontrado y 500 para fallas internas.
Paso 1: criterio de backend
Centralizar errores en un error handler evita repetir try/catch y permite registrar detalles internos sin filtrar informacion sensible al cliente.
Paso 2: criterio de backend
Los logs deben ayudar a operar: metodo, ruta, usuario si existe, id de request, latencia y error. No guardes secretos, tokens o passwords.
Paso 3: criterio de backend
Una buena prueba manual incluye provocar errores. Si tu API solo muestra el camino feliz, el proyecto parece incompleto para trabajo real.
Ejercicio practico para portfolio
Construye una mini API de cursos, usuarios o empleos con Express.js. Inclui rutas claras, validacion, errores consistentes y un README que explique como correr el proyecto. La meta es que un reclutador o cliente vea que podes pasar de tutorial a backend mantenible.
- Entregable: repositorio con endpoint, ejemplo de request y respuesta esperada.
- Checklist: status codes correctos, validacion, logs, seguridad basica y pruebas manuales reproducibles.
- Salida laboral: conecta el proyecto con rutas de carreras, empleos y servicios backend del marketplace.
Sigue con Express.js y Node.js para APIs profesionales
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.