Depuración y diagnóstico
El proceso de depuración en Node.js debe empezar en modo Inspect que expone un protocolo remoto que puede ser conectado y permite diagnosticar a través de puntos de interrupción.
Objetivos
Iniciar un proceso en modo inspect.
Conectar un proceso en modo inspect para depurarlo.
Comprender que son los breakpoints (puntos de ruptura o interrupción).
Inicio de modo inspección
Node.js soporta el protocolo de depuración remota como chrome DevTools.
Para activar el modo inspección: node --inspect index.js
Activar el modo inspección pero iniciando con un breakpoint activo (Inspect Break mode) al inicio del programa: node --inspect-brk index.js
Si no utilizamos los flags anteriores, la aplicación se inicializará por completo y estará realizando tareas asíncronas antes de que pueda establecer los breakpoints.
Ejemplo utilizando Chrome Devtools:
Vamos a crear un pequeño programa con el algoritmo recursivo de fibonacci.

Ejecutamos en modo inspección:

Abrimos Chrome e ingresamos a chrome://inspect/#devices:

Click en inspect y nos abrirá una instancia DevTools que está conectada con el proceso de Node:

Si deseamos que haga una pausa en excepciones detectadas, debemos dar click en "Pause on caught exceptions":
Esta funcionalidad es útil para localizar excepciones dentro del código, ya que nos muestra la pila de llamadas (Call Stack).

Agreguemos un breakpoint y veamos el comportamiento del call stack:

En algunos casos se puede agregar un breakpoint directamente en el código, utilizando el flag --inspect,
y agregándole en el código la declaración debugger
(línea 5):
No es buena práctica utilizar esta estrategia (debugger) por el impacto de rendimiento.

Last updated
Was this helpful?