2014-10-24 8 views
13

Ich habe ein bestehendes Projekt node.js + express in VS verschoben, weil ich die IDE jetzt vor JetBrains bevorzuge (seit Jahren VS, nur in Webstorm gespäht)).Debuggen der Anwendung node.js mit Visual Studio 2013 und Node-Tools NTVS

Ich verwendete NTVS neues Projekt-> aus vorhandenen Quellen und alle Dateien wurden erfolgreich importiert.

Danach habe ich die Projekteinstellungen meines Projekts geöffnet und die Argumente node.exe auf bin \ www, Startup-Datei für Express gesetzt.

Wenn ich F5 (debuggen) drücke, bekomme ich die console.log Nachrichten, die ich in die www und app.js Dateien in der öffnenden Eingabeaufforderung eingegeben habe, und es sieht aus wie der Server läuft (kann nicht bestätigen, ich will zu debuggen, wenn alles funktioniert), aber der VS-Debugger wird direkt wieder beendet, es öffnet auch keine Seite in dem Browser, den ich zum Debuggen ausgewählt habe.

Meine Knoten-App ist eigentlich ein REST-Webservice, daher möchte ich verschiedene URLs mit unterschiedlichen Parametern testen.

Auch kann ich nicht auf die App auf den Port zugreifen, die ich angegeben, obwohl, wenn ich es direkt von node.exe starten kann ich, obwohl die Eingabeaufforderung immer noch geöffnet ist.

(Ich habe NTVS und WebEssentials installiert - einige Operationen eine lange Zeit in Anspruch nehmen, aber ich fahre dies auf NTVS noch eine frühe Version zu sein.)

Frage: wie funktioniert der Visual Studio-Debugger Aufenthalt mit dem Internet verbunden node.js Anwendung, so dass ich Haltepunkte verwenden und einen beliebigen Browser verwenden kann, um verschiedene URLs zu verbinden und zu testen? (Selbst ein Haltepunkt auf die console.log setzen, die während des Startvorgangs gedruckt wird nicht ausgelöst wird.)

Antwort

22

Für jeden, der erhält fragt, und derjenige, der findet sucht ....

(und ja, ich habe eine lange Zeit damit verbringen, suchen und zu versuchen, bevor hier veröffentlichen ..)

Settings

Art schön node.js Server mit VS zu debuggen ..

hoffe, das hilft jemand

Bearbeiten: Die Argumente für node.exe kann schwer in das Bild gelesen werden. Es muss

das ist mit zwei Bindestriche (und nicht nur eine), um den Debug-Port anzugeben.

+0

Warum haben Sie bin \ www als Argument? –

+0

In diesem Fall war es die Startup-Datei (Express-Projekt). –

+0

Danke, das hat mir den Tag gerettet :) – Cesar

2

nicht so viel Wissen über expressjs aber mit einer aktuellen Version von NTVS 1.0 Alpha, ich fand es Remote-Debugging unterstützt, die auch lokal nodejs App debuggen verwendet werden können, laufen - ohnehin nicht versucht haben, wenn es mit NodeJS App funktioniert + expressjs aber es sollte.

folgte ich den Schritt in diesem Video https://youtu.be/-ir9ZB8lUg4 die

mit node.exe RemoteDebug.js <your_javascript_file>
  1. Führen Sie Ihre NodeJS ist.
    RemoteDebug.js ist gekommen, wenn Sie NTVS installieren.
  2. in Visual Studio wählen Debug>Attach to Process
  3. Wählen Node.js remote debugging für Transport
  4. localhost:5859 für Qualifier Attach
  5. Klicken Sie auf Eingabe wird

Dieses Visual Studio im Debugging-Modus versetzt, die Sie einen Haltepunkt festlegen , Step-in/Step-out, sehr ähnliche Erfahrung, wenn Sie VS verwenden, um die .NET-App zu debuggen.

0

Sein ziemlich geradlinig mit NTVS, können Sie benötigte Version für Ihre Fenster aus github here

herunterladen Sobald Sie NTVS installieren, werden NodeJS Projektvorlagen

nun hinzugefügt werden, Goto File-> Neues Projekt -> Grund NodeJS Express 3-Anwendung (es wird in javaScript Projektvorlagen verfügbar)

Jetzt nur goto Debug und wählen Start Debugging, fügen breakp Wo immer nötig, und Sie können mit dem Debuggen beginnen