Frage

Wie debugge ich ein Node.js server-Anwendung?

Jetzt bin ich meistens mit alert-debugging mit der print-Anweisung wie diese:

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

Es muss einen besseren Weg zu Debuggen.Ich weiß, dass Google Chrome hat ein Kommandozeilen-debugger.Ist dieser debugger verfügbar Node.js wie auch?

War es hilfreich?

Lösung 3

Die V8 Debugger als Teil des Google veröffentlicht Chrome Developer tools zu debuggen Node.js Skripte verwendet werden können. Eine detaillierte Erklärung zur Funktionsweise finden Sie in der Knoten gefunden werden Js GitHub Wiki .

Andere Tipps

Knoten-Inspektor könnte den Tag retten! Verwenden Sie es, von jedem Browser unterstützt WebSocket . Haltepunkte, Profiler, livecoding, etc ... Es ist wirklich genial.

Installieren Sie es mit:

npm install -g node-inspector

Dann laufen:

node-debug app.js

Debuggen

Profilieren

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

Heapdumps

Flamegraphs

Tracing

Protokollierung

Bibliotheken, dass die Ausgabe Debug-Informationen

Bibliotheken, die Stack-Trace-Informationen verbessern

Benchmarking

Andere

Vermächtnis

Diese Anwendung zu arbeiten, aber nicht mehr weiter gepflegt oder nicht mehr für moderne Knoten Versionen.

Knoten sein eigener hat in GUI-Debugger ab Version 6.3 gebaut (mit Chrome DevTools )

 Nodes builtin GUI-Debugger

Sie einfach den Inspektoren Flagge passieren und Sie werden den Prüfer mit einer URL zur Verfügung gestellt werden:

node --inspect server.js

Sie können auch auf der ersten Zeile durchbrechen, indem --inspect-brk statt vorbei.

Um ein Chrome-Fenster automatisch geöffnet wird, verwenden Sie die inspizieren-Prozess Modul.

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

# start the debugger with inspect
inspect script.js

Node.js Version 0.3.4+ hat eine integrierte Unterstützung debuggen.

node debug script.js

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

Visual Studio-Code wird meine Wahl für das Debuggen. Kein Aufwand für Werkzeuge oder npm install Sachen installieren. Einfach den Ausgangspunkt Ihrer Anwendung in package.json und VSCode wird eine Konfigurationsdatei in Ihrer Lösung automatisch erstellen. Es Build auf Electron , auf die Editoren wie Atome aufgebaut sind.

  

VS-Code gibt ähnliche Debug-Erfahrung wie Sie haben könnten   hatte in anderen IDEs wie VS, Eclipse, etc.

eingeben Bild Beschreibung hier

Ich persönlich benutze JetBrains WebStorm , da es die einzige JavaScript IDE ist, dass ich gefunden habe, die beide groß ist für Frontend und Backend JavaScript.

Es funktioniert auf mehreren Betriebssystemen und verfügt über Node.js Debuggen eingebaut (sowie eine Menge anderer Sachen] ( Sublime Text 2 - dh Typ ‚Spaß‘ und tippen Sie 'Reiter' in Funktion setzen Siehe @WickyNilliams Kommentar unten -.. Mit Live-Vorlagen Sie auch Snippet Unterstützung haben

Theseus ist ein Projekt von Adobe Forschung, die Sie in Debuggen von Node.js Code können ihre Open-Source-Editor Brackets . Es hat einige interessante Features wie Echtzeit-Code-Coverage, rück Inspektion, asynchronen Aufruf Baum.

Screenshot

Viele große Antworten hier, aber ich möchte meine Ansicht hinzufügen (basierend auf, wie mein Ansatz entwickelt)

Debug-Protokolle

Seien wir ehrlich, wir alle lieben eine gute console.log('Uh oh, if you reached here, you better run.') und manchmal die großen Werke, wenn Sie also zurückhaltender zu weit weg zumindest von ihm zu bewegen, einige bling auf Ihre Protokolle mit Visionmedia Debug .

Interaktive Debuggen

Wie praktisch als Konsolenprotokollierung sein kann, zu debuggen professionell müssen Sie Ihre Ärmel hochzukrempeln und stecken in bekommen. Setzen Sie Haltepunkte, Schritt für Schritt durch den Code, überprüfen Bereiche und Variablen, um zu sehen, was das seltsame Verhalten verursacht. Wie andere erwähnt haben, Knoten-Inspektor ist wirklich die Bienen-Knie. Er tut alles, was Sie mit dem integrierten Debugger tun, aber mit diesem vertrauten Chrome DevTools Schnittstelle. Wenn, wie ich, verwenden Sie WebStorm , dann hier ist eine praktische Anleitung von dort zu debuggen.

Stack-Traces

Standardmäßig können wir nicht eine Reihe von Operationen in verschiedenen Zyklen der Ereignisschleife (Ticks) verfolgen. Um dies zu umgehen hat einen Blick auf Longjohn (aber nicht in Produktion!).

Memory Leaks

Mit Node.js wir einen Serverprozess zu erwarten, für längere Zeit zu bleiben. Was tun Sie, wenn Sie denken, dass es einige böse Lecks entstanden ist? Verwenden Sie heapdump und Chrome DevTools ein paar Schnappschüsse zu vergleichen und sehen, was zu verändern.


Für einige nützliche Artikel Besuche

Wenn Sie sich wie ein Video ansehen (en) dann

Wie auch immer Weg Sie wählen, nur sicher sein, Sie verstehen, wie Sie debuggen

 image description hier

eingeben
  

Es ist eine schmerzhafte Sache
  Um Blick auf Ihre eigenen Probleme und wissen
  Dass Sie sich selbst und sonst niemand gemacht hat es

     

Sophokles, Ajax

Node.js Tools für Visual Studio 2012 oder 2013 einen Debugger enthält. Die Übersicht hier states „Node.js Tools für Visual Studio enthält vollständige Unterstützung Knoten Anwendungen für das Debuggen.“. Die neu in Node.js, aber einen Hintergrund in .NET ist, habe ich dieses Add gefunden eine gute Möglichkeit, zu debuggen Node.js Anwendungen.

Visual Studio-Code wirklich nett Node.js Debugging-Unterstützung hat. Es ist kostenlos, Open Source und Cross-Plattform und läuft auf Linux, OS X und Windows.

Sie können sogar debug Grunzen und schluck Aufgaben , sollten Sie müssen ...

Ich schrieb einen anderen Ansatz zu debuggen Node.js Code, der stabil ist und ist extrem einfach. Es ist erhältlich unter https://github.com/sa/iron-node .

Geben Sie Bildbeschreibung hier

Ein Open-Source-Cross-Plattform-visuelle Debugger.

Installation:

npm install iron-node -g;

Debug:

iron-node yourscript.js;

Wenn Sie mit dem Atom IDE , können Sie das node-debugger-Paket installieren.

Mit Chrome Version 67.0.3396.62 (+)

  1. Ausführen Knoten app
  

Knoten---inspect BRK = 0.0.0.0: 9229 server.js (server js Dateiname)

  1. Durchsuchen Sie Ihre App in Chrom z.B. "Localhost: port"
  2. Öffnen DevTools.
  3. Klicken Sie auf das der Knoten-Symbol neben dem ansprechenden Gerätesymbol.

 image description hier

eingeben

Es wird ein weiteres DevTools Fenster, das für das Debuggen von Knoten App speziell herausspringen wird.

 image description hier

eingeben

Ich habe ein nettes kleines Tool namens pry.js , die Ihnen helfen können.

Setzen Sie eine einfache Aussage irgendwo im Code, führen Sie Ihr Skript normalerweise und Knoten den aktuellen Thread zu stoppen geben Sie für alle Ihre Variablen und Funktionen zugreifen. Ansicht / bearbeiten / löschen sie nach Belieben!

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

Es ist eingebaut in der Kommandozeile Debugger-Client innerhalb Node.js. Cloud 9 IDE haben auch recht nett (visuell) Debugger .

Visual Studio-Code arbeitet für uns bei der Fehlersuche.

Ich habe eine kurze Node.js Debug-Primer auf die Verwendung von < a href = "https://github.com/node-inspector/node-inspector" rel = "nofollow noreferrer"> node-Inspektor für diejenigen, die nicht sicher sind, wo anfangen.

Verwenden WebStorm! Es ist perfekt für das Debuggen von Node.js-Anwendungen. Es hat sich zu einem integrierten Debugger. Schauen Sie sich die Dokumentation hier: https: // www .jetbrains.com / help / WebStorm / 2016,1 / laufen-and-Debugging-node-js.html

Wenn Sie eine leistungsstarke Logging-Bibliothek für Node.js, Tracer https://github.com/baryon/tracer ist eine bessere Wahl.

Es gibt Log-Meldungen mit einem Zeitstempel, Dateinamen, Methodennamen, Zeilennummer, Pfad oder Call-Stack, Unterstützung Farbkonsole und Support-Datenbank, ein Datei-Stream Transport leicht. Ich bin der Autor.

Angenommen, Sie haben node-inspector auf Ihrem computer installiert ist (falls nicht, geben Sie einfach 'npm install-g node-inspector"), die Sie nur ausführen müssen:

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

Und fügen Sie den URI von der Befehlszeile in einem WebKit (Chrome / Safari), browser.

Starten Sie Ihren Knoten Prozess mit -. Inspect Flag

node --inspect index.js

und dann öffnen chrome://inspect in Chrom. Klicken Sie auf die „Open dedizierte DevTools für Knoten“ -Link oder installieren this chrome-Erweiterung für leicht Chrom DevTools öffnen.

Weitere Informationen finden Sie unter diesen Link

Es gibt viele Möglichkeiten ...

Debug-Unterstützung oft implementiert, mit dem v8 Debugging-Protokoll oder den neueren < a href = "https://developer.chrome.com/devtools/docs/debugger-protocol" rel = "noreferrer"> Chrome-Debugging-Protokoll .

Es ist die neue Open-Source- Nodeclipse Projekt (als Eclipse-Plugin oder Enide Studio ):

Nodeclipse wurde 1 # in Eclipse-Top 10 neuen Plugins für das Jahr 2013 . Es verwendet eine modifizierte V8 Debugger (von Google Chrome Developer Tools für Java).

ist Nodeclipse freie Open-Source-Software zu Beginn eines jeden Monats freigegeben.

IntelliJ funktioniert wunderbar für Node.js.

Darüber hinaus IntelliJ unterstützt 'Code-Assistance' gut.

Die NetBeans IDE hatte Node.js Unterstützung da Version 8.1 :

  

<...>

     

Die Neuerungen im Detail

     

Node.js Application Development

     
      
  • Neue Node.js Projekt-Assistent
  •   
  • Neue Node.js Express Assistenten
  •   
  • Verbesserte JavaScript-Editor
  •   
  • Neue Unterstützung für das Ausführen Node.js Anwendungen
  •   
  • Neue Unterstützung für Node.js Debuggen von Anwendungen.
  •   
     

<...>

Weitere Referenzen:

  1. NetBeans Wiki / NewAndNoteworthyNB81 .
  2. Node.js Express App in NetBeans IDE, Geertjan-Oracle .

Verwenden Sie diese Befehle

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

Eine schnelle und unsaubere Art und Weise zu debuggen kleine Node.js Skripte mit Ihrem Lieblings Browser Debugger zu verwenden wäre, browserify . Beachten Sie, dass dieser Ansatz nicht funktioniert mit allen Anwendungen, die nativen I / O-Bibliotheken erfordern, aber es ist gut genug für die meisten kleinen Skripten.

$ npm install -g browserify

Sie nun alle Ihre var x = requires('x') Anrufe in eine requires.js Datei und starten Sie bewegen:

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

(Der Nachteil hier ist, dass Sie entweder verschieben oder die requires in allen Dateien zu kommentieren.)

Fügen Sie den bundle.js in einer HTML-Datei wie folgt:

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

laden Sie nun die Datei in Ihrem Browser und drücken Sie F12 und Viola. Debug-Browser

ndb ist eine verbesserte Debugging-Erfahrung für Node.js, aktiviert durch Chrome DevTools

https://github.com/GoogleChromeLabs/ndb

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top