Question

Comment puis-je déboguer une application serveur Node.js?

En ce moment je suis la plupart du temps en utilisant débogage alerte avec des instructions d'impression comme ceci:

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

Il doit y avoir une meilleure façon de débogage. Je sais que Google Chrome a un débogueur en ligne de commande. Est-ce débogueur disponible pour Node.js ainsi?

Était-ce utile?

La solution 3

Le V8 débogueur publié dans le cadre de Google Chrome Developer Tools peuvent être utilisés pour déboguer Node.js scripts. Une explication détaillée de la façon dont cela fonctionne se trouve dans le Noeud .js wiki GitHub.

Autres conseils

pourrait sauver la journée! Utilisez-le à partir d'un navigateur supportant WebSocket . Les points d'arrêt, profileur, livecoding, etc ... Il est vraiment génial.

Installer avec:

npm install -g node-inspector

Ensuite, exécutez:

node-debug app.js

Debugging

Profilage

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

Heapdumps

Flamegraphs

Tracing

Connexion

Les bibliothèques que les informations de débogage de sortie

Les bibliothèques qui améliorent l'information de trace de pile

Analyse comparative

  • Banc Apache: ab -n 100000 -c 1 http://127.0.0.1:9778/
  • wrk

Autres

  • Trace
  • Vantage
  • Bugger
  • Google Tracing cadre
  • Guide de Paul irlandais

Héritage

Ces utiliser pour travailler, mais ne sont plus maintenues ou ne sont plus applicables aux versions de noeuds modernes.

Noeud a sa propre construit Débogueur GUI de la version 6.3 (en utilisant les DevTools Chrome )

 Les nœuds builtin GUI débogueur

Il suffit de passer le drapeau de l'inspecteur et vous sera fourni avec une URL à l'inspecteur:

node --inspect server.js

Vous pouvez aussi briser sur la première ligne en passant à la place --inspect-brk.

Pour ouvrir une fenêtre Chrome automatiquement, utiliser le href="https://github.com/jaridmargolin/inspect-process" inspecter processus Module .

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

# start the debugger with inspect
inspect script.js

Version Node.js 0.3.4+ a un support intégré de débogage.

node debug script.js

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

code Visual Studio sera mon choix pour le débogage. Pas de frais généraux d'installation des outils ou des trucs npm install. Il suffit de régler le point de départ de votre application dans package.json et VSCode crée automatiquement un fichier de configuration dans votre solution. Il est construit sur électronique, sur lequel les éditeurs comme Atom sont construits.

  

VS code donne une expérience de débogage similaire que vous pourriez avoir   avait dans d'autres environnements de développement comme VS, Eclipse, etc.

 entrer image description ici entrer la description d'image ici

J'utiliser personnellement JetBrains WebStorm car il est le seul IDE JavaScript que j'ai trouvé ce qui est idéal pour les frontend et backend JavaScript.

Il fonctionne sur plusieurs systèmes d'exploitation et a Node.js débogage intégré (ainsi qu'une tonne d'autres choses] ( Sublime Text 2 - à savoir le type 'fun' et appuyez sur « onglet » de mettre en fonction Voir @WickyNilliams commentaire ci-dessous -.. Avec le soutien Modèles live vous ont également extrait de code

Theseus est un projet de recherche par Adobe qui permet de déboguer votre code Node.js dans leur Ouvrir l'éditeur Source Supports . Il a quelques fonctionnalités intéressantes comme la couverture de code en temps réel, l'inspection rétroactive, arbre d'appel asynchrone.

capture d'écran

Beaucoup de grandes réponses ici, mais je voudrais ajouter mon avis (basé sur la façon dont mon approche a évolué)

Journaux de débogage

Avouons-le, nous aimons tous un bon console.log('Uh oh, if you reached here, you better run.') et parfois cela fonctionne très bien, donc si vous êtes réticent à aller trop loin au moins ajouter un peu de bling à vos journaux avec debug de Visionmedia.

Debugging interactif

pratique que l'enregistrement de la console peut être, pour déboguer dont vous avez besoin professionnellement à retrousser vos manches et de se coincer dans. Set points d'arrêt, dans votre code, inspectez champs et variables pour voir ce qui cause ce comportement bizarre. Comme d'autres l'ont mentionné, est vraiment les abeilles genoux. Il fait tout ce que vous pouvez faire avec le débogueur intégré, mais en utilisant cette interface familière DevTools Chrome. Si, comme moi, vous utilisez WebStorm , puis sur ici est un guide pratique pour le débogage à partir de là.

Stack Traces

Par défaut, on ne peut pas tracer une série d'opérations dans les différents cycles de la boucle d'événements (tiques). Pour contourner ce problème jeter un oeil à Longjohn (mais pas dans la production!).

Fuites de mémoire

Avec Node.js, nous pouvons avoir un processus serveur devrait rester pour un temps considérable. Que faites-vous si vous pensez qu'il a jailli des fuites désagréables? Utilisez heapdump et Chrome DevTools de comparer des instantanés et de voir ce qui change.


Pour certains articles utiles, consultez

Si vous vous sentez comme regarder une vidéo (s) puis

Quel que soit le chemin que vous choisissez, juste être sûr que vous comprenez comment vous déboguez

 ici

  

Il est une chose douloureuse
  Pour regarder votre propre problème et savoir
  Que vous-même et personne d'autre n'a fait

     

Sophocle, Ajax

Node.js Outils pour Visual Studio 2012 ou 2013 comprend un débogueur. La vue d'ensemble indique « Outils Node.js pour Visual Studio inclut un support complet pour le débogage des applications de nœud. ». Être nouveau à Node.js, mais ayant un fond dans .NET, j'ai trouvé ce module complémentaire pour être un excellent moyen pour déboguer les applications Node.js.

code Visual Studio a vraiment sympa Node.js support de débogage. Il est gratuit, open source et multi-plateforme et fonctionne sur Linux, OS X et Windows.

Vous pouvez même débogage tâches grognement et Gulp , si vous devez ...

J'ai écrit une approche différente pour déboguer le code Node.js qui est stable et est extrêmement simple. Il est disponible à https://github.com/sa/iron-node .

Entrer image description ici

Un débogueur visuel opensource multi-plateforme.

Installation:

npm install iron-node -g;

Debug:

iron-node yourscript.js;

Si vous utilisez le Atom IDE , vous pouvez installer le package node-debugger.

Utilisation de la version Chrome 67.0.3396.62 (+)

  1. Exécuter application noeud
  

noeud --inspect-BRK = 0.0.0.0: 9229 server.js (nom de fichier de serveur)

  1. Rechercher votre application en chrome par exemple "Localhost: port"
  2. DevTools Ouvrir.
  3. Cliquez sur l'icône de nœud à côté de l'icône de dispositif sensible.

 ici

Il y aura une autre fenêtre DevTools qui pop spécifiquement pour le débogage de l'application nœud.

 ici

J'ai créé un petit outil appelé pry.js qui peut vous aider.

Mettre une simple déclaration quelque part dans votre code, exécutez votre script normalement et nœud arrêter le thread courant en vous donnant accès à toutes vos variables et fonctions. Afficher / modifier / les supprimer à volonté!

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()

Il est intégré dans la ligne de commande client débogueur dans les Node.js. Cloud 9 IDE ont également assez agréable (visuel) débogueur.

code Visual Studio va travailler pour nous dans le débogage.

Je mets ensemble une courte Node.js débogage primaire sur l'utilisation du < a href = "https://github.com/node-inspector/node-inspector" rel = "nofollow noreferrer"> node-inspecteur pour ceux qui ne savent pas où commencer.

Utilisez WebStorm! Il est parfait pour le débogage des applications Node.js. Il a un débogueur intégré. Consultez la documentation ici: https: // www .jetbrains.com / help / WebStorm / 2016,1 / rodage et le débogage noeud-js.html

Si vous avez besoin d'une puissante bibliothèque de journalisation pour Node.js, Tracer https://github.com/baryon/tracer est un meilleur choix.

Il transmet les messages du journal avec un horodatage, nom de fichier, nom de la méthode, le numéro de ligne, pile de chemin ou appel, support console couleur, et la base de données de support, fichier, le transport de flux facilement. Je suis l'auteur.

En supposant que vous avez nœud inspecteur installé sur votre ordinateur (sinon, il suffit de taper « installer NPM nœud inspecteur -g ») il vous suffit de lancer:

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

coller l'URI de la ligne de commande dans un WebKit (Chrome / Safari) navigateur.

Commencez votre processus de nœud avec -. Inspecter drapeau

node --inspect index.js

et puis chrome://inspect Open in chrome. Cliquez sur le lien « Open DevTools dédiés pour le nœud » ou installer ce extension de chrome pour ouvrir facilement DevTools de chrome.

Pour plus d'informations reportez-vous à ce lien

Il y a beaucoup de possibilités ...

Prise en charge de débogage est souvent mis en œuvre en utilisant le v8 Protocole Debugging ou plus récent < a href = "https://developer.chrome.com/devtools/docs/debugger-protocol" rel = "noreferrer"> Protocole Debugging Chrome .

Il est le nouveau projet open-source Nodeclipse (comme un plug-in Eclipse ou Enide studio ):

Nodeclipse est devenu n ° 1 à rel="nofollow Eclipse Top 10 Plugins pour 2013 . Il utilise une version modifiée V8 débogueur (Google Chrome Developer Tools pour Java).

Nodeclipse est un logiciel gratuit open-source publié au début de chaque mois .

IntelliJ fonctionne à merveille pour Node.js.

En outre, IntelliJ soutient bien «Code d'aide.

Le a bénéficié du soutien Node.js depuis Version 8.1 :

  

<...>

     

Nouvelles fonctionnalités

     

Développement d'applications Node.js

     
      
  • Nouveau Node.js assistant de projet
  •   
  • Assistant New Node.js express
  •   
  • JavaScript Enhanced Editor
  •   
  • Nouveau support pour l'exécution d'applications Node.js
  •   
  • Nouveau support pour le débogage des applications Node.js.
  •   
     

<...>

Références supplémentaires:

  1. NetBeans Wiki / NewAndNoteworthyNB81 .
  2. Node.js App express dans NetBeans IDE, Geertjan-Oracle .

Cette commande

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

Un moyen rapide et sale pour déboguer les petits scripts Node.js avec votre débogueur favori du navigateur serait d'utiliser browserify . Notez que cette approche ne fonctionne pas avec toutes les applications qui nécessitent d'E / S natives des bibliothèques, mais il est assez bon pour les scripts les plus petits.

$ npm install -g browserify

Maintenant déplacer tous vos appels var x = requires('x') dans un fichier requires.js et exécutez:

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

(L'inconvénient est que vous devez soit déplacer ou commenter la requires dans tous vos fichiers.)

Inclure le bundle.js dans un fichier HTML comme ceci:

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

Maintenant charger le fichier dans votre navigateur, puis appuyez sur F12 et alto. Debug dans le navigateur

NDB est une expérience de débogage amélioré pour Node.js, activé par Chrome DevTools

https://github.com/GoogleChromeLabs/ndb

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top