Question Comment puis-je déboguer les applications Node.js?


Comment déboguer une application serveur Node.js?

En ce moment, je suis principalement en utilisant débogage d'alerte avec des instructions d'impression comme ceci:

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

Il doit y avoir un meilleur moyen de déboguer. je le sais Google Chrome a un débogueur de ligne de commande. Ce débogueur est-il également disponible pour Node.js?


1394
2017-12-15 22:50


origine


Réponses:


noeud-inspecteur pourrait sauver la journée! Utilisez-le depuis n'importe quel navigateur prenant en charge WebSocket. Breakpoints, profiler, livecoding, etc ... C'est vraiment génial.

Installez-le avec:

npm install -g node-inspector

Ensuite, lancez:

node-debug app.js

1193
2017-10-15 17:17



Débogage

Profilage

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

Heapdumps

Flamegraphs

Tracé

Enregistrement

Bibliothèques qui génèrent des informations de débogage

Bibliothèques qui améliorent les informations de trace de la pile

Benchmarking

Autre

Héritage

Ceux-ci fonctionnent pour fonctionner mais ne sont plus maintenus ou ne sont plus applicables aux versions modernes de noeud.


672
2018-05-12 21:37



le V8 débogueur publié dans le cadre de Google Outils de développement Chrome peut être utilisé pour déboguer les scripts Node.js. Une explication détaillée de la façon dont cela fonctionne peut être trouvée dans le Node.js wiki GitHub.

Il y a aussi ndb, un débogueur de ligne de commande écrit dans Node.js lui-même.


208
2018-03-29 08:57



Le nœud a son propre construit en Débogueur graphique à partir de la version 6.3 (en utilisant DevTools de Chrome)

Nodes builtin GUI debugger

Passez simplement le drapeau de l'inspecteur et vous recevrez une URL pour l'inspecteur:

node --inspect server.js

Vous pouvez également casser la première ligne en passant --inspect-brk au lieu.

Pour ouvrir automatiquement une fenêtre Chrome, utilisez la inspecter-processus module.

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

# start the debugger with inspect
inspect script.js

151
2017-09-14 14:51



Node.js version 0.3.4+ dispose d'un support de débogage intégré.

node debug script.js

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


83
2018-01-16 01:20



J'utilise personnellement JetBrains WebStorm car c'est le seul IDE JavaScript que j'ai trouvé, ce qui est parfait pour le JavaScript frontend et backend.

Il fonctionne sur plusieurs systèmes d'exploitation et intègre le débogage Node.js (ainsi que plein d'autres choses) (http://www.jetbrains.com/webstorm/features/index.html).

Mes seules questions 'issues' / wishlist sont  étaient:

  1. Il semble être plus gourmand en ressources sur Mac que Windows Cela ne semble plus être un problème dans la version 6.
  2. Ce serait bien s'il avait le support de Snippet (comme ceux de Texte sublime 2 - c'est-à-dire taper 'fun' et taper 'tab' pour mettre une fonction. Voir @WickyNilliams commentaire ci-dessous - Avec Live Templates vous avez également un support de l'extrait.

52
2018-05-03 14:42



Code Visual Studio sera mon choix pour le débogage. Pas de frais généraux d'installation d'outils ou npm install des trucs. Définissez simplement le point de départ de votre application dans package.json et VSCode créera automatiquement un fichier de configuration dans votre solution. C'est construit sur Électron, sur lequel des éditeurs comme Atom sont construits.

VS Code offre une expérience de débogage similaire à celle que vous pourriez avoir   avait dans d'autres IDE comme VS, Eclipse, etc.

enter image description here enter image description here


52
2018-02-19 10:21



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

screenshot


36
2018-05-14 22:21



Beaucoup de bonnes réponses ici, mais je voudrais ajouter mon point de vue (basé sur comment mon approche a évolué)

Journaux de débogage

Regardons les choses en face, 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 à vous éloigner d'au moins ajouter un peu de bling à vos journaux avec Le débogage de Visionmedia.

Débogage interactif

Aussi pratique que puisse être la consignation sur console, pour déboguer professionnellement, vous devez retrousser vos manches et rester coincé. Définissez des points d'arrêt, parcourez votre code, inspectez les étendues et les variables pour voir ce qui cause ce comportement étrange. Comme d'autres l'ont mentionné, noeud-inspecteur 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 de Chrome DevTools. Si, comme moi, vous utilisez Webstorm, puis ici est un guide pratique pour déboguer à partir de là.

Empiler des traces

Par défaut, nous ne pouvons pas tracer une série d'opérations sur différents cycles de la boucle d'événements (ticks). Pour contourner cela, jetez un oeil à Longjohn (mais pas en production!).

Fuites de mémoire

Avec Node.js, nous pouvons avoir un processus de serveur prévu pour rester longtemps. Que faites-vous si vous pensez qu'il a jailli des fuites méchantes? Utilisation heapdump et Chrome DevTools pour comparer quelques instantanés et voir ce qui change.


Pour certains articles utiles, consultez

Si vous avez envie de regarder une vidéo, alors

Quel que soit le chemin que vous choisissez, assurez-vous de bien comprendre comment vous déboguez

enter image description here

C'est une chose douloureuse
Pour regarder vos propres problèmes et savoir
  Que vous-même et personne d'autre ne l'a fait

Sophocle, Ajax


31
2017-09-15 15:33