How to debug node.js application with Visual Studio 2013 and Node Tools NTVS
Solution 1
For everyone who asks receives, and the one who searches finds....
(and yes, I did spend a long time searching and trying before posting here..)
Kind of nice to debug node.js server with VS..
hope this helps someone
Edit: The arguments to node.exe can be hard to read in the image. It must be
--debug=<portno>
that is with two dashes (and not just one) to specify the debug port.
Solution 2
Not so much knowledge on expressjs
but with a recent release of NTVS
1.0 Alpha, I did find it supports remote debugging which can be also used to debug nodejs
app running locally - anyway haven't tried if it works with nodejs app + expressjs but it should.
I followed the step in this video https://youtu.be/-ir9ZB8lUg4 which is
- Run your nodejs with
node.exe RemoteDebug.js <your_javascript_file>
.
RemoteDebug.js
has come when you install NTVS. - In Visual Studio, select
Debug
>Attach to Process
- Select
Node.js remote debugging
for Transport - Enter
localhost:5859
for Qualifier - Click
Attach
This will put Visual Studio in debugging mode which you can set a breakpoint, do step-in/step-out, very same experience when you use VS to debug .NET app.
Andreas Reiff
I like to develop and lots of other stuff. I also like to tell other people what to do. :) In a helpful way, of couse. Life is good. Last jobs include UI Automation, TFS Automation integration (focus on Coded UI), Hardware Interfacing and Project Management. Technology Focus is on C#, also I am still strong in C++/C (did a lot a lot earlier on), on Windows Desktop. Looking into web/mobile right now out of interest. Please also have a look at my website at http://www.andreas-reiff.de . I am working as a freelancer right now.
Updated on June 25, 2022Comments
-
Andreas Reiff almost 2 years
I have moved an existing node.js + express project to VS because I prefer the IDE over JetBrains for now (used VS for years, only peeked into Webstorm).
I used NTVS new project->from existing sources and all files were imported successfully.
Afterwards, I opened the project settings of my project and set the node.exe arguments to bin\www, startup file for express.
When I press F5 (debug) I get the console.log messages I have put into the www and app.js files in the opening command prompt, and it looks like the server is running (cannot confirm, I want to debug if everything is working), but the VS debugger directly exits again, it also does not open any page in the browser I selected for debugging.
My node app actually is a REST webservice, so I want to test different URLs with different parameters.
Also, I cannot access the app on the port I specified, though when I directly start it from node.exe I can, even though the command prompt is still open.
(I have NTVS and WebEssentials installed - some operations take a long long time, but I attribute this to NTVS being still an early version.)
Question: how does the Visual Studio debugger stay connected to the node.js application so I can use breakpoints and use any browser then to connect and test different URLs? (Even a breakpoint put on the console.log that gets printed during startup is not being triggered.)
-
Daniël Tulp almost 9 yearswhy do you have bin\www as an argument?
-
Andreas Reiff almost 9 yearsIn this case, it was the startup file (express project).
-
Cesar almost 9 yearsThanks, that saved my day :)
-
Ads over 8 yearsHey @AndreasReiff for some reason the image isn't available for me. Any chance you could try uploading it again or provide a link to it?? Thanks
-
Andreas Reiff over 8 yearsDid you try the image url at i.stack.imgur.com/x0tth.png ? What error do you get? Looks like a general problem you have with SO.
-
Jari Turkia over 5 yearsFor an Azure PaaS-project having ReactJS, this doesn't work.