Frage Wie debugge ich Node.js-Anwendungen?


Wie debugge ich eine Node.js-Serveranwendung?

Im Moment benutze ich meistens Alarm-Debugging mit Druckanweisungen wie folgt:

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

Es muss eine bessere Möglichkeit zum Debuggen geben. ich weiß das Google Chrome hat einen Befehlszeilen-Debugger. Ist dieser Debugger auch für Node.js verfügbar?


1394
2017-12-15 22:50


Ursprung


Antworten:


Knoten-Inspektor könnte den Tag retten! Verwenden Sie es von jedem Browser, der unterstützt WebSocket. Breakpoints, Profiler, Livecoding, etc ... Es ist wirklich großartig.

Installieren Sie es mit:

npm install -g node-inspector

Dann renne:

node-debug app.js

1193
2017-10-15 17:17



Debuggen

Profilerstellung

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

Heapdumps

Flammengraphen

Ablaufverfolgung

Protokollierung

Bibliotheken, die Debuginformationen ausgeben

Bibliotheken, die Stack-Trace-Informationen verbessern

Benchmarking

Andere

Erbe

Diese funktionieren, werden aber nicht mehr gepflegt oder sind für moderne Knotenversionen nicht mehr anwendbar.


672
2018-05-12 21:37



Das V8 Debugger als Teil von Google veröffentlicht Chrome-Entwicklertools kann zum Debuggen von Node.js-Skripten verwendet werden. Eine detaillierte Erklärung, wie das funktioniert, finden Sie in der Node.js GitHub Wiki.

Es gibt auch ndbein Befehlszeilen-Debugger, der in Node.js selbst geschrieben wurde.


208
2018-03-29 08:57



Der Knoten hat seine eigene eingebaut GUI Debugger ab Version 6.3 (mit den DevTools von Chrome)

Nodes builtin GUI debugger

Übergeben Sie einfach die Inspektor-Flagge und Sie erhalten eine URL zum Inspektor:

node --inspect server.js

Sie können auch in der ersten Zeile durchgehen, indem Sie übergeben --inspect-brk stattdessen.

Um ein Chrome-Fenster automatisch zu öffnen, verwenden Sie die inspect-Prozess Modul.

# 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+ hat eingebaute Debug-Unterstützung.

node debug script.js

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


83
2018-01-16 01:20



Ich persönlich benutze JetBrains WebStorm es ist die einzige JavaScript-IDE, die ich gefunden habe, die sowohl für Frontend als auch für Backend-JavaScript hervorragend ist.

Es funktioniert auf mehreren Betriebssystemen und hat Node.js Debugging eingebaut (sowie eine Menge anderer Sachen) (http://www.jetbrains.com/webstorm/features/index.html).

Meine einzigen 'Probleme' / Wunschliste Artikel sind  wurden:

  1. Es scheint auf Mac Ressourcenhungriger zu sein als Windows In Version 6 scheint das kein Problem mehr zu sein.
  2. Es wäre schön, wenn es Snippet Unterstützung hätte (wie die von Erhabener Text 2 - Geben Sie "Spaß" ein und tippen Sie auf "Tab", um eine Funktion einzugeben. Siehe @WickyNilliams Kommentar unten - Mit Live Templates haben Sie auch Snippet Unterstützung.

52
2018-05-03 14:42



Visual Studio-Code wird meine Wahl zum Debuggen sein. Kein Aufwand für die Installation von Werkzeugen oder npm install Sachen. Legen Sie einfach den Startpunkt Ihrer App in package.json fest, und VSCode erstellt automatisch eine Konfigurationsdatei in Ihrer Lösung. Es ist aufgebaut auf Elektron, auf denen Editoren wie Atom gebaut werden.

VS Code bietet ähnliche Debug-Erfahrung wie Sie möglicherweise haben   hatte in anderen IDEs wie VS, Eclipse, etc.

enter image description here enter image description here


52
2018-02-19 10:21



Theseus ist ein Projekt von Adobe Research, mit dem Sie Ihren Node.js Code in ihrem Open Source Editor debuggen können Klammern. Es hat einige interessante Funktionen wie Echtzeit-Code-Abdeckung, rückwirkende Inspektion, asynchrone Aufruf-Struktur.

screenshot


36
2018-05-14 22:21



Viele gute Antworten hier, aber ich möchte meine Meinung hinzufügen (basierend auf meiner Entwicklung)

Debug-Protokolle

Seien wir ehrlich, wir alle lieben ein Gutes console.log('Uh oh, if you reached here, you better run.') und manchmal funktioniert das gut. Wenn du dich also zurückhaltest, um zu weit weg von ihr zu sein, dann füge wenigstens ein paar Bling zu deinen Logs hinzu Das Debugging von Visionmedia.

Interaktives Debugging

So praktisch wie die Konsolenprotokollierung sein kann: Um professionell zu debuggen, müssen Sie die Ärmel hochkrempeln und stecken bleiben. Setzen Sie Haltepunkte, gehen Sie durch Ihren Code, untersuchen Sie Bereiche und Variablen, um zu sehen, was dieses komische Verhalten verursacht. Wie andere bereits erwähnt haben, Knoten-Inspektor Wirklich sind die Bienen-Knie. Es bietet alles, was Sie mit dem integrierten Debugger tun können, aber mit der vertrauten Chrome DevTools-Oberfläche. Wenn du, wie ich, benutzt Websturm, dann Hier ist eine praktische Anleitung zum Debuggen von dort.

Stapel Spuren

Standardmäßig können wir eine Reihe von Vorgängen über verschiedene Zyklen der Ereignisschleife (Ticks) nicht verfolgen. Um dies zu umgehen, werfen Sie einen Blick auf Langjohn (aber nicht in Produktion!).

Speicherlecks

Mit Node.js können wir erwarten, dass ein Serverprozess lange Zeit aufhält. Was machst du, wenn du denkst, dass es zu ekligen Lecks gekommen ist? Benutzen Heapdump und Chrome DevTools, um einige Schnappschüsse zu vergleichen und zu sehen, was sich ändert.


Für einige nützliche Artikel, überprüfen Sie

Wenn Sie Lust haben, ein Video (s) zu sehen, dann

Unabhängig davon, welchen Pfad Sie wählen, stellen Sie sicher, dass Sie verstehen, wie Sie debuggen

enter image description here

Es ist eine schmerzhafte Sache
Um deine eigenen Probleme zu sehen und zu wissen
  Dass du selbst und niemand sonst es geschafft hast

Sophokles, Ajax


31
2017-09-15 15:33



Node.js Tools für Visual Studio 2012 oder 2013 enthält einen Debugger. Der Überblick Hier "Node.js Tools für Visual Studio bietet vollständige Unterstützung für das Debuggen von Knoten-Apps." Da ich neu bei Node.js bin, aber einen Hintergrund in .NET habe, habe ich festgestellt, dass dieses Add-In eine gute Möglichkeit ist, Node.js-Anwendungen zu debuggen.


21
2018-05-02 12:30