2012-07-11 6 views
27

Sé cómo depurar aplicaciones http utilizando node-inspector e iisnode. Pero, ¿puedo usar el inspector de nodos para depurar una aplicación de nodo no http, en Windows?Cómo depurar una aplicación básica node.js (no http) en Windows

me trataron:

node debug test.js 

Dice:

debugger listening on port 5858 

Pero la apertura http://localhost:5858/ en Chrome no hace nada.


BTW: correr node debug test.js ¿Se inicia el depurador de línea de comandos que funciona. Pero no se parece en nada al inspector de nodos.

+0

Puede probar http://www.jetbrains.com/webstorm/ depurador, que es bastante poderoso – saintedlama

Respuesta

62

Para utilizar el nodo-inspector, el interruptor de la derecha es node --debug no node debug

Aquí están los pasos detallados:

  1. instalar nodo-inspector a nivel mundial (npm install -g node-inspector)
  2. desde una ventana de línea de comandos, ejecute: node-inspector
  3. abra Chrome y vaya a http://localhost:8080/debug?port=5858. Obtendrá la interfaz de usuario de nodo-inspector pero sin ninguna aplicación en ejecución.
  4. desde otra ventana de línea de comandos, ejecute su aplicación con el interruptor --debug así: node --debug test.js
  5. actualizar la pestaña de Chrome y listo!

Algunos puntos interesantes:

  • Si matan a su aplicación y empezar de nuevo, simplemente actualizar la pestaña de nodo-inspector. Mantendrá todos tus puntos de interrupción.
  • Para romper de forma automática en la primera línea iniciar su aplicación con node --debug-brk test.js
+0

Con la última nodeJS en OSX, parece que "node depuración" hace lo correcto, y "node --debug" no lo hace. –

+0

Según https://nodejs.org/api/debugger.html, la diferencia de ambas versiones es sobre qué nodo se espera que haga: '--debug' iniciará _su aplicación se depurará_ y' depurará' comenzará el nodo _to depurar alguna aplicación_. Entonces estos son dos lados de la misma historia. – cepharum

2

Dice: depurador escucha en el puerto 5858

Me preguntaba a mí mismo sobre esto, pero ya que la documentación Node.js indica que el depurador es accesible a través de un protocolo TCP sencilla y no dice nada sobre HTTP, supongo que no, no estará disponible en _http: // localhost: 5858.

"V8 viene con una extensa depurador que es accesible fuera del proceso a través de un simple protocolo TCP" - http://nodejs.org/api/debugger.html

+0

Buen punto sobre TCP vs HTTP. Sé sobre el depurador de línea de comandos, pero realmente es la experiencia de inspector de nodos que estoy buscando. – Sylvain

0

FYI, en OSX 10.8, no parece Chrome v26 a trabajar, pero no Safari 6 usando las mismas instrucciones que el anterior y usando 0,0 .0.0: 8080 para conect.

Hay otro mensaje por Danny Coates dice en alguna parte que hacerlo en el siguiente orden:

  1. Su proceso de nodo: --debug nodo (o --debug-BRK) my_program.js
  2. nodo-inspector: node-inspector de
  3. el navegador señaló 0.0.0.0:8080
0

Si eres un novato como yo en Windows, y obtienes el 'inspector de nodos no reconocido' o algo sobre el error de Windows JScript ... a pesar de la instalación global, añadiendo a PATH, etc. esto puede ayudar.

vaya a C: \ Users \ urusername \ AppData \ Roaming \ NPM

A continuación, ejecute el nodo-debug.cmd o nodo-inspector.cmd

Debe obtener palabras mágicas como

Node Inspector v0.12.7 
Visit http://127.0.0.1:8080/?port=5858 to start debugging. 
Debugger listening on port 5858 

Impresionante. Si conoce una solución mejor, por favor hágamelo saber

Cuestiones relacionadas