Hoy · Hoja de ruta
- 1. Aprende: Cómo se diagnostica un fallo cuando no hay interfaz que mirar.
- 2. Haz: Repara un servidor con cinco fallos.
- 3. Comprueba: Sabes decir en qué lado está el problema antes de tocar nada.
Antes de empezar · 5 minutos, sin apuntes
- Si el navegador muestra un error, ¿cómo sabes si el fallo es del cliente o del servidor?
- ¿Qué mira primero: la consola del navegador o la terminal?
- ¿Qué información te da el código de estado sobre dónde buscar?
Dos consolas, y hay que mirar la correcta
- ¿Sale la petición? Pestaña Network del navegador
- ¿Llega al servidor? Tu registro de peticiones
- ¿Qué estado devuelve? 4xx es del cliente, 5xx es tuyo
- ¿Qué dice la terminal? Ahí está la traza
Ese registro de la sesión 15 deja de ser un adorno: es lo que separa «no llega la petición» de «llega y falla», que es la misma pregunta de la UD4 trasladada al servidor.
El inspector
node --inspect src/servidor.js
Con el servidor arrancado así, puedes conectar DevTools o el depurador de VS Code y poner puntos de interrupción en tu código de servidor: mismo depurador, mismo procedimiento que en la UD3.
Los fallos típicos de un servidor Node
| Síntoma | Causa habitual |
|---|---|
El servidor no arranca, EADDRINUSE |
Otro proceso tuyo sigue vivo en ese puerto |
| Todo devuelve 404 | El orden de las declaraciones, o la ruta mal escrita |
peticion.body es undefined |
Falta express.json(), o va después de la ruta |
| La petición se queda colgada | Un middleware sin next ni respuesta |
| «Cabeceras ya enviadas» | Se respondió dos veces: falta un return |
| Los cambios no se aplican | El servidor no se ha reiniciado |
| El módulo del cliente no se ejecuta | Tipo de contenido incorrecto en el estático |
Reproduce sin navegador
Antes de investigar, repite la petición con tu cliente HTTP. Si desde ahí funciona, el problema está en el cliente y no en el servidor; si falla igual, has eliminado media docena de variables de un golpe.
Tarea 17 · El servidor roto
Recibirás un proyecto con cinco fallos, uno de cada familia de la tabla. Para cada uno:
- Escribe el síntoma exacto y qué esperabas.
- Di si el fallo es del cliente o del servidor, y cómo lo has sabido.
- Formula la hipótesis antes de tocar nada.
- Compruébala con el registro, el cliente HTTP o un punto de interrupción.
- Corrige con el cambio más pequeño posible.
Checkpoint · fin de la sesión 17
- Separas fallos de cliente de fallos de servidor.
- Usas Network, el registro y la terminal en el orden correcto.
- Sabes arrancar Node con el inspector.
- Reproduces sin navegador antes de investigar.