Pregunta

¿Cómo depuro una aplicación de servidor Node.js?

En este momento estoy usando principalmente depuración de alertas con declaraciones impresas como esta:

sys.puts(sys.inspect(someVariable));

Debe haber una mejor manera de depurar.Yo sé eso Google Chrome tiene un depurador de línea de comandos.¿Este depurador también está disponible para Node.js?

¿Fue útil?

Solución 3

El V8 depurador lanzado como parte de la Google Chrome Herramientas de Desarrollo se pueden utilizar para depurar Node.js guiones. Una explicación detallada de cómo funciona esto se puede encontrar en el Nodo rel="noreferrer"> .

Otros consejos

nodo-inspector de podría salvar el día! Utilizarlo desde cualquier navegador que soporte WebSocket . Los puntos de interrupción, perfilador, livecoding, etc ... Es realmente impresionante.

Instalar con:

npm install -g node-inspector

A continuación, ejecute:

node-debug app.js

Depuración

Perfilado

  1. node --prof ./app.js
  2. node --prof-process ./the-generated-log-file

volcados de montón

Flamegrafos

Rastreo

Inicio sesión

Bibliotecas que generan información de depuración

Bibliotecas que mejoran la información de seguimiento de la pila

Evaluación comparativa

Otro

Legado

Estos solían funcionar, pero ya no se mantienen o ya no son aplicables a las versiones modernas de nodos.

nodo tiene su propia rel="noreferrer"> partir de la versión 6.3 (usando DevTools de Chrome )

 nodos BuiltIn depurador GUI

Basta con pasar la bandera inspector y se le proporcionó con una URL para el inspector:

node --inspect server.js

También puede romper en la primera línea que pasa por --inspect-brk lugar.

Para abrir una ventana de Chrome automáticamente, utilice el inspeccionar-proceso módulo.

# install inspect-process globally
npm install -g inspect-process

# start the debugger with inspect
inspect script.js

Node.js versión 0.3.4+ ha incorporado en el soporte de depuración.

node debug script.js

Manual: http://nodejs.org/api/debugger.html

código de Visual Studio será mi elección para la depuración. Ninguna sobrecarga de la instalación de herramientas o material npm install. Sólo hay que establecer el punto de partida de su aplicación en package.json y VSCode creará automáticamente un archivo de configuración dentro de su solución. Es construir sobre Electrón , sobre la que se construyen editores como Atom.

  

VS Código da experiencia de depuración similar a la que pueda tener   tenido en otros entornos de desarrollo como VS, Eclipse, etc.

 introducir descripción de la imagen aquí introducir descripción de la imagen aquí

Yo personalmente uso JetBrains WebStorm ya que es el único IDE para JavaScript que he encontrado que es ideal tanto para frontend y backend JavaScript.

Se trabaja en múltiples sistemas operativos y tiene Node.js depuración incorporada (así como un montón de otras cosas] ( http://www.jetbrains.com/webstorm/features/index.html ).

Mis únicos problemas '' / artículo en su lista son estaban

  1. Parece ser más ávidas de recursos en Mac que Windows Ya no parece un problema en la versión 6.
  2. Sería bueno si tuviera el apoyo de fragmentos (como las de Sublime Text 2 - es decir, tipo 'diversión' y toque 'ficha' a poner en una función Ver @WickyNilliams comentario a continuación -.. con plantillas de apoyo directo que también han fragmento de código

Teseo es un proyecto de investigación de Adobe que permite depurar el código de Node.js en su editor de código abierto soportes . Tiene algunas características interesantes como la cobertura de código en tiempo real, la inspección retroactiva, árbol llamada asincrónica.

pantalla

Una gran cantidad de grandes respuestas aquí, pero me gustaría añadir mi punto de vista (en función de cómo mi enfoque evolucionó)

Registros de depuración

Vamos hacerle frente, a todos nos gusta una buena console.log('Uh oh, if you reached here, you better run.') ya veces eso funciona muy bien, así que si eres reticente a ir demasiado lejos de ella, al menos, añadir un poco de bling a sus registros con Visionmedia de depuración .

depuración interactiva

Como práctico, ya que el registro de la consola puede ser, para depurar profesional que necesita para subirse las mangas y quedar atrapado en. Establecer puntos de interrupción, recorrer el código, inspeccionar ámbitos y variables para ver cuál es la causa de que el comportamiento extraño. Como otros han mencionado, nodo-inspector de realmente las abejas rodillas. Hace todo lo que puede hacer con la interfaz de Chrome que DevTools familiarizado depurador integrado, pero utilizando. Si, como yo, se utiliza WebStorm y aquí es una guía útil para la depuración de allí.

trazas de la pila

Por defecto, no podemos trazar una serie de operaciones a través de diferentes ciclos de la bucle de eventos (garrapatas). Para evitar esto echar un vistazo a longjohn (pero no en la producción!).

Pérdidas de memoria

Con Node.js que puede tener un proceso de servidor espera que permanezca para un tiempo considerable. ¿Qué hacer si cree que ha surgido algunas fugas desagradables? Usar Heapdump y Chrome DevTools comparar algunas instantáneas y ver lo que está cambiando.


Para algunos artículos útiles, echa un vistazo a

Si usted se siente como ver un video (s) a continuación

Cualquiera que sea el camino que elija, sólo asegúrese de que entiende cómo se depura

 introducir descripción de la imagen aquí

  

Es una cosa dolorosa
  Mirar su propio mal y saber
  Que usted mismo y nadie más ha hecho

     

Sófocles, Ajax

Node.js Tools para Visual Studio 2012 o 2013 incluye un depurador. El aquí Unidos "Herramientas Node.js para Visual Studio incluye soporte completo para depurar aplicaciones de nodo.". Al ser nuevo en Node.js, pero tener un fondo en .NET, he encontrado este complemento en ser una gran manera de depurar aplicaciones Node.js.

Código Studio

Visual ha realmente agradables Node.js compatibilidad de depuración. Es gratuito, de código abierto y multiplataforma y funciona en Linux, OS X y Windows.

Puede incluso depuración tareas gruñido y trago , en caso de que tenga que ...

escribí un enfoque diferente para depurar código de Node.js que es estable y es extremadamente simple. Está disponible en https://github.com/sa/iron-node .

Enter descripción de la imagen aquí

Un opensource multiplataforma depurador visual.

Instalación:

npm install iron-node -g;

Depuración:

iron-node yourscript.js;

Si está utilizando la Atom IDE , puede instalar el paquete node-debugger.

Uso de Chrome Versión 67.0.3396.62 (+)

  1. Ejecutar aplicación nodo
  

nodo --inspect-brk = 0.0.0.0: 9229 server.js (nombre de archivo del servidor js)

  1. Examine su aplicación en cromo, por ejemplo, "Localhost: puerto"
  2. DevTools abiertas.
  3. Haga clic en el icono del nodo junto al icono del dispositivo de respuesta.

 introducir descripción de la imagen aquí

Habrá otra ventana DevTools que aparecerá a cabo específicamente para la depuración de aplicación nodo.

 introducir descripción de la imagen aquí

He creado una pequeña herramienta llamada ordenada pry.js que pueden serle de ayuda.

Ponga una simple declaración en alguna parte de su código, ejecute la secuencia de comandos normalmente y nodo se detendrá el flujo actual que le da acceso a todas las variables y funciones. Ver / editar / borrar a voluntad!

pry = require('pryjs')

class FizzBuzz

  run: ->
    for i in [1..100]
      output = ''
      eval(pry.it) # magic
      output += "Fizz" if i % 3 is 0
      output += "Buzz" if i % 5 is 0
      console.log output || i

  bar: ->
    10

fizz = new FizzBuzz()
fizz.run()

No está incorporado en la línea de comandos depurador cliente dentro Node.js. Cloud 9 IDE tiene también bastante agradable (visual) depurador .

código de Visual Studio va a trabajar para nosotros en la depuración.

Monté un corto Node.js depuración imprimación sobre el uso de la etiqueta < a href = "https://github.com/node-inspector/node-inspector" rel = "nofollow noreferrer"> nodo-inspector de para aquellos que no están seguros de por dónde empezar.

Utilice WebStorm! Es perfecto para depurar aplicaciones Node.js. Cuenta con un depurador incorporado. Echa un vistazo a los documentos aquí: https: // www .jetbrains.com / help / WebStorm / 2016.1 / marcha-y-depuración de nodo js.html

Si necesita una potente biblioteca de registro para Node.js, trazador https://github.com/baryon/tracer es una mejor opción.

Se da salida a los mensajes de registro con una marca de tiempo, nombre de archivo, nombre del método, número de línea, una ruta o una llamada pila, color consola de apoyo, el apoyo y base de datos, archivo, secuencia transporte fácilmente. Yo soy el autor.

Asumiendo que tiene ganglios inspector instalado en su ordenador (si no es así, sólo tiene que escribir 'NPM instalar -g nodo-inspector') sólo hay que ejecutar:

node-inspector & node --debug-brk scriptFileName.js

y pegue el URI de la línea de comandos en un WebKit (Chrome / Safari) del navegador.

Comience el proceso de nodo con -. Inspeccionar bandera

node --inspect index.js

y luego chrome://inspect abierto en cromo. Haga clic en "DevTools dedicados abiertas para el nodo" enlace o instalar este extensión de Chrome para abrir fácilmente DevTools cromo.

Para más información consulta este enlace

Hay muchas posibilidades ...

Depuración de apoyo a menudo se implementa mediante el v8 Depuración Protocolo o el nuevo < a href = "https://developer.chrome.com/devtools/docs/debugger-protocol" rel = "noreferrer"> Protocolo de depuración Chrome .

No es el nuevo de código abierto proyecto Nodeclipse (como un plugin Eclipse o Enide Studio ):

Nodeclipse se convirtió en # 1 en rel="nofollow Eclipse Top 10 nuevos plugins para 2013 . Se utiliza una V8 depurador modificado (de Google Chrome Developer Tools para Java).

Nodeclipse es un software libre de código abierto lanzado al comienzo de cada mes .

IntelliJ funciona de maravilla para Node.js.

Además, es compatible con IntelliJ 'Asistencia Código' también.

El IDE ha tenido apoyo Node.js desde versión 8.1 :

  

<...>

     

Nuevas Características más

     

Node.js desarrollo de aplicaciones

     
      
  • Nuevo asistente de proyectos Node.js
  •   
  • Asistente de Nueva Node.js expreso
  •   
  • mejorado JavaScript Editor
  •   
  • El nuevo soporte para la ejecución de aplicaciones Node.js
  •   
  • El nuevo soporte para la depuración de aplicaciones Node.js.
  •   
     

<...>

Referencias adicionales:

  1. NetBeans wiki / NewAndNoteworthyNB81 .
  2. Node.js expreso App en NetBeans IDE, Geertjan-Oracle .

Esta comandos

DEBUG_LEVEL=all node file.js
DEBUG=* node file.js
node file.js --inspect

Una manera rápida y sucia a depurar pequeños scripts Node.js con su favorito depurador navegador sería utilizar browserify . Tenga en cuenta que este enfoque no funciona con todas las aplicaciones que requieren nativos I / O bibliotecas, pero es lo suficientemente bueno para guiones más pequeñas.

$ npm install -g browserify

Ahora mover todos sus var x = requires('x') pone en un archivo requires.js y ejecute:

$ browserify requires.js -s window -o bundle.js

(La desventaja aquí es que usted tiene que trasladar o comentar la requires en todos sus archivos.)

Incluir el bundle.js en un archivo HTML de esta manera:

<script type="text/javascript" src="bundle.js"></script>

Ahora carga el archivo en su navegador y presione F12 y la viola:. Depuración en el navegador

NDB es una experiencia de depuración mejorada para Node.js, habilitado por Chrome DevTools

https://github.com/GoogleChromeLabs/ndb

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top