2012-04-30 12 views
9

Mi experiencia bastante limitada con Node y Express no ayuda, pero tengo problemas para depurar la aplicación desde la ventana del terminal. Aquí está el problema:Debugging Node/Express --- require ('express') crea un descanso

corriendo node debug app.js devuelve:

< debugger listening on port 5858 
connecting... ok 
break in server.js:1 
    1 var express = require('express'); 

Es ésta la manera correcta de depuración de aplicaciones Express?

Respuesta

9

Hay un depurador de GUI popular (aprovechando WebKit, es decir, Chrome, Safari ..).

Debe darle una oportunidad https://github.com/dannycoates/node-inspector

+1

node-inspector parece ser el camino a seguir, gracias. Lo que aún no me queda claro es cómo accedes a las variables del servidor. En este ejemplo, por ejemplo, los retornos exprés no están definidos. –

+0

Supongo que desea inspeccionar la variable con el depurador incorporado. Intente echar un vistazo al ejemplo aquí http://nodejs.org/api/debugger.html Básicamente, debe ingresar al modo REPL, luego inspeccionar ... – 250R

+2

Agregue el comando correcto para iniciarlo, no solo deje un enlace ... y ganar mi voto popular ... ^^ – jebbie

2

Personalmente, yo prefiero usar una combinación de node-inspector con anticuados console.log declaraciones de averiguar lo que está pasando. (No creo que v8-profiler, mencionado por node-inspector, funcione con Node 0.6.x, pero para ser sincero, no lo he intentado).

Si alguien más tiene una herramienta de depuración mejor mantenida Node .js aplicaciones, me encantaría saberlo, también, pero esto es lo mejor que sé.

+0

http://stackoverflow.com/questions/14214021/how-to-install-v8-profiler-using-npm-on-windows-7 –

10

Simplemente haciéndose eco de la llamada para Node Inspector con un poco más explícito.

$ sudo npm install -g node-inspector 
$ node-debug app.js <arguments to your app> 
debugger listening on port 5858 
Node Inspector is now available from http://localhost:8080/debug?port=5858 
Debugging `app.js` 

Ahora en (? Un basados ​​en WebKit) del navegador ir a esa dirección - o que funciona bien de forma remota también, siempre que los puertos están abiertos.

enter image description here

Ahora usted tiene acceso completo a todas las variables del lado del servidor (el objeto app por ejemplo), que están en el lado del cliente depurador. Es bastante mágico. Puede establecer puntos de interrupción en app.get() puntos de entrada, o en el servidor init, o donde sea.

+0

No puedo conseguir esto para trabajo. el inspector de nodos se abre, pero no se encuentra app.js. –

+2

esta debería ser la respuesta aceptada: simplemente iniciar "node-inspector app.js" no funcionará en absoluto;) y ... simplemente dejar un enlace con "hey, mira esto" no es lo que se siente como una respuesta para mí ... ^^ – jebbie