¿Alguien conoce un buen método para depurar el código del lado del servidor? Intenté habilitar la depuración de Node.js y luego usar el inspector de nodo, pero no muestra nada de mi código.
Termino usando console.log pero esto es muy ineficiente.
Actualización: encontré que el siguiente procedimiento funciona en mi máquina Linux:
Cuando ejecuta Meteor, generará dos procesos
proceso1: / usr / lib / meteor / bin / node /usr/lib/meteor/app/meteor/meteor.js
process2: / usr / lib / meteor / bin / node /home/paul/codes/bbtest_code/bbtest02/.meteor/local/build/main.js --keepalive
Necesita enviar kill -s USR1 en process2
Ejecute el inspector de nodos y podrá ver el código de su servidor
En mi primer intento, modifico la última línea en el script de inicio de meteor en / usr / lib / meteor / bin / meteor para
exec "$DEV_BUNDLE/bin/node" $NODE_DEBUG "$METEOR" "$@"
y ejecutar NODE_DEBUG=--debug meteor
en el símbolo del sistema. Esto solo puso --debug flag en process1, por lo que solo veo archivos de meteoritos en el inspector de nodos y no pude encontrar mi código.
¿Alguien puede verificar esto en una máquina Windows y Mac?
fuente
Respuestas:
En Meteor 0.5.4 esto se ha vuelto mucho más fácil:
Primero ejecute los siguientes comandos desde la terminal:
Y luego abra
http://localhost:8080
en su navegador para ver la consola del inspector de nodos.Actualizar
Desde Meteor 1.0, solo puede escribir
que es esencialmente un atajo para los comandos anteriores, y luego inicie el inspector de nodos en su navegador como se mencionó.
Actualizar
En Meteor 1.0.2 se ha agregado una consola o shell. Puede resultar útil generar variables y ejecutar comandos en el servidor:
fuente
meteor
este depurador se ejecuta y bloquea mi aplicación de meteoritos para que no ejecute nada en el lado del cliente.console.log('asd') [object Object]
meteor debug
. No puedo encontrar mi código para establecer un punto de interrupción.Las aplicaciones de meteoritos son aplicaciones de Node.js. Al ejecutar una aplicación Meteor con el
meteor [run]
comando, puede configurar laNODE_OPTIONS
variable de entorno para que se inicienode
en modo de depuración .Ejemplos de
NODE_OPTIONS
valores de variables de entorno:--debug
--debug=47977
- especificar un puerto--debug-brk
- romper en la primera declaración--debug-brk=5858
- especificar un puerto y romper en la primera declaraciónSi es así
export NODE_OPTIONS=--debug
, todos losmeteor
comandos ejecutados desde el mismo shell heredarán la variable de entorno. Alternativamente, puede habilitar la depuración solo para una ejecución, conNODE_OPTIONS="--debug=47977" meteor
.Para depurar, ejecute
node-inspector
en un shell diferente, luego vaya ahttp://localhost:8080/debug?port=<the port you specified in NODE_OPTIONS>
, independientemente de lo quenode-inspector
le indique que ejecute.fuente
Para iniciar node.js en modo de depuración, lo hice de esta manera:
antes de
añadir
Aquí hay pasos prácticos adicionales para adjuntar el depurador eclipse:
cuando inicie meteor en la carpeta de su aplicación de meteoritos, verá ese " depurador escuchando en el puerto 5858 " en la consola.
fuente
/usr/lib
y/usr/local/
por razones desconocidas. Si no le funciona, intente editar en/usr/local/meteor/app/meteor/run.js
lugar de/usr/lib/meteor/app/meteor/run.js
On Meteor 1.0.3.1 (actualización a la respuesta de Sergey.Simonchik)
Inicie su servidor con
meteor run --debug-port=<port-number>
Apuntar navegador a
http://localhost:6222/debug?port=<port-number>
¿Dónde
<port-number>
está un puerto que especifique?En su código, agregue un
debugger;
donde desea establecer su punto de interrupción.Dependiendo de dónde
debugger;
se invoque, se interrumpirá en la ventana del navegador de su cliente o servidor con el inspector abierto.fuente
Me gusta establecer puntos de interrupción a través de una GUI. De esta forma, no tengo que acordarme de eliminar ningún código de depuración de mi aplicación.
Así es como logré hacerlo del lado del servidor para mi aplicación de meteoritos local:
inicie su aplicación de esta manera.
Abra Chrome en la dirección que le proporcione. PUEDE tener que instalar https://github.com/node-inspector/node-inspector (¿podría venir incluido con Meteor ahora? No estoy seguro)
Verá un código de meteorito interno extraño (no el código de la aplicación que escribió). presiona play para ejecutar el código. Este código simplemente inicia su servidor para escuchar conexiones.
Solo después de presionar reproducir, verá un nuevo directorio en la estructura de carpetas del depurador llamado "aplicación" . Allí están los archivos de su proyecto de meteorito. Establezca un punto de interrupción en la línea que desee.
Abra la dirección local de su aplicación . ¡Esto ejecutará el código del lado del servidor y usted debería poder alcanzar su punto de interrupción!
Nota: tienes que volver a abrir el inspector y volver a realizar este proceso cada vez que se reinicia la aplicación.
fuente
A partir de Meteor 1.0.2, probablemente la mejor manera de depurar el lado del servidor sea directamente a través del nuevo shell integrado: con la ejecución del servidor
meteor shell
. Más información aquí: https://www.meteor.com/blog/2014/12/19/meteor-102-meteor-shellfuente
No estoy seguro de por qué no funcionó para usted.
Puedo usarlo siguiendo los pasos en la consola (Mac).
Los pasos anteriores se mencionan en https://github.com/dannycoates/node-inspector . Sirve para adjuntar el inspector de nodos al proceso del nodo en ejecución.
fuente
debugger
puntos de interrupción en el inspector, pero ninguno de ellos funcionó. ¿Alguna idea de por qué?ps | grep node
(o similar) asegúrese de elegir el pid main.js para señalar, no su proceso de nodo padre. Así es como lo hice funcionar.Escribí un pequeño paquete de meteoritos llamado meteor-inspector que simplifica el uso de node-inspector para depurar aplicaciones de meteoritos. Administra internamente el ciclo de vida del inspector de nodos y, por lo tanto, el usuario no necesita reiniciar el depurador manualmente después de que algunos archivos hayan cambiado.
Para obtener más detalles e instrucciones de uso concretas, consulte https://github.com/broth-eu/meteor-inspector .
fuente
para meteoro 1.3.5.2, ejecutar
fuente
WebStorm , el poderoso IDE gratuito para desarrolladores de código abierto, facilita la depuración del lado del servidor.
Lo probé en Windows y la configuración fue sencilla: vea mi respuesta .
fuente
Un inspector que resuelve mis problemas es la consola del servidor de meteoritos. Aquí está el proceso que seguí para instalarlo:
En la carpeta de su proyecto, agregue el paquete inteligente
server-eval
:Para Meteor 1.0:
Reinicie meteoro.
crx
archivo de extensión de Chrome desde aquí .crx
archivo a la página de extensiones.Consulte el inspector web para evaluar el código del lado del servidor:
En comparación con el inspector de nodos, tengo una salida más clara.
fuente
Si prefiere usar el depurador oficial de nodeJS, puede llamar
NODE_OPTIONS='--debug' meteor
y luego (en un shell diferente)node debug localhost:5858
.fuente