我已将一个现有的node.js + express项目移动到VS,因为我现在更喜欢IDE而不是JetBrains(多年来使用VS,只是窥视Webstorm)。
我使用NTVS新项目 - >来自现有来源,所有文件都已成功导入。
之后,我打开了项目的项目设置,并将node.exe参数设置为bin \ www,启动文件为express。
当我按F5(调试)时,我收到我在开启命令提示符下放入www和app.js文件的console.log消息,看起来服务器正在运行(无法确认,我想要调试,如果一切正常),但VS调试器再次直接退出,它也不会打开我选择进行调试的浏览器中的任何页面。
我的节点应用程序实际上是一个REST Web服务,因此我想测试具有不同参数的不同URL。
此外,我无法访问我指定的端口上的应用程序,但是当我从node.exe直接启动它时,我可以,即使命令提示符仍然打开。
(我安装了NTVS和WebEssentials - 有些操作需要很长时间,但我认为这仍然是NTVS的早期版本。)
问题: Visual Studio调试器如何与node.js应用程序保持连接,以便我可以使用断点并使用任何浏览器连接并测试不同的URL?(甚至断点放在在启动期间打印的console.log未被触发。)
答案 0 :(得分:24)
对于要求收到的每个人,以及搜索的人......
(是的,我确实花了很长时间搜索并尝试发布到这里..)
很高兴使用VS ..调试node.js服务器
希望这有助于某人
编辑:在图像中很难读取node.exe的参数。一定是
--debug=<portno>
用两个短划线(而不仅仅是一个)来指定调试端口。
答案 1 :(得分:2)
关于expressjs
的知识不多,但最近发布的NTVS
1.0 Alpha,我发现它支持远程调试,也可用于调试本地运行的nodejs
应用程序 - 无论如何,如果它与nodejs app + expressjs一起使用还没有尝试,但它应该。
我按照此视频https://youtu.be/-ir9ZB8lUg4中的步骤进行了操作
node.exe RemoteDebug.js <your_javascript_file>
运行您的nodejs
安装NTVS时出现RemoteDebug.js
。Debug
&gt; Attach to Process
Node.js remote debugging
进行传输localhost:5859
进行限定符Attach
这将使Visual Studio处于调试模式,您可以设置断点,执行步进/跳出,使用VS调试.NET应用程序时的体验非常相同。
答案 2 :(得分:0)
使用NTVS非常简单,您可以从github here下载所需的Windows版本
安装NTVS后,将添加NodeJS项目模板
现在,转到文件 - &gt;新项目 - &gt;基本的NodeJS Express 3应用程序(它将在javascript项目模板中提供)
现在只需转到调试并选择开始调试,在需要的地方添加断点,然后就可以开始调试了