如何在 Windows 上调试基本的 node.js 应用程序(不是 http)

Posted

技术标签:

【中文标题】如何在 Windows 上调试基本的 node.js 应用程序(不是 http)【英文标题】:How to debug a basic node.js application (not http) on windows 【发布时间】:2012-07-11 09:13:14 【问题描述】:

我知道如何使用 node-inspector 和 iisnode 调试 http 应用程序。但是我可以使用 node-inspector 在 windows 上调试 non http 节点应用程序吗?

我试过了:

 node debug test.js

上面写着:

debugger listening on port 5858

但在 Chrome 中打开 http://localhost:5858/ 并没有任何作用。


顺便说一句:运行node debug test.js 确实会启动命令行调试器。但它不像节点检查器。

【问题讨论】:

你可以试试jetbrains.com/webstorm 调试器,相当强大 【参考方案1】:

一些可能对您有帮助的链接:

http://vimeo.com/19465332(Ryan 本人的截屏视频)。 https://github.com/joyent/node/wiki/using-eclipse-as-node-applications-debugger

【讨论】:

【参考方案2】:

它说:调试器正在侦听端口 5858

我对此感到疑惑,但由于 Node.js 文档表明调试器可以通过一个简单的 TCP 协议访问,并且对 HTTP 只字未提,我的猜测是不,它不可用在 _http://localhost:5858。

“V8 带有一个广泛的调试器,可以通过简单的 TCP 协议在进程外访问”-http://nodejs.org/api/debugger.html

【讨论】:

关于 TCP 与 HTTP 的优点。我知道命令行调试器,但它确实是我正在寻找的节点检查器体验。【参考方案3】:

要使用节点检查器,正确的开关是node --debug 而不是node debug

详细步骤如下:

    全局安装节点检查器 (npm install -g node-inspector) 从命令行窗口运行:node-inspector 打开 Chrome 并转到 http://localhost:8080/debug?port=5858。您将获得节点检查器 UI,但没有任何正在运行的应用程序。 从另一个命令行窗口,使用--debug 开关运行您的应用程序,如下所示:node --debug test.js 刷新 Chrome 选项卡并瞧!

几个有趣的点:

如果您终止应用程序并重新启动它,只需刷新节点检查器选项卡即可。它将保留您的所有断点。 要在第一行自动中断,请使用node --debug-brk test.js 启动您的应用程序

【讨论】:

在 OSX 上使用最新的 nodeJS,“node debug”似乎是正确的,而“node --debug”却没有。 根据nodejs.org/api/debugger.html 的说法,两个版本的区别在于节点应该做什么:--debug 将启动一些要调试的应用程序debug 将启动节点调试一些应用程序。所以这是同一个故事的两个方面。【参考方案4】:

节点检查器可能会很有帮助。

在任何支持 websocket 的浏览器中使用它。

断点、分析器、实时编码等。

http://erickrdch.com/2012/09/debug-a-nodejs-app-with-chrome-dev-tools.html

【讨论】:

【参考方案5】:

仅供参考,在 OSX 10.8 中,Chrome v26 似乎无法正常工作,但 Safari 6 使用与上述相同的说明并使用 0.0.0.0:8080 进行连接。

Danny Coates 的另一篇帖子说按以下顺序进行操作:

    您的节点进程:node --debug(或 --debug-brk)my_program.js 节点检查器:节点检查器 浏览器指向0.0.0.0:8080

【讨论】:

【参考方案6】:

最近微软发布了node.js tools for Visual Studio。它为 node.js 提供了非常舒适的 Visual Studio 调试。

【讨论】:

【参考方案7】:

如果您像我一样在 Windows 上是菜鸟,并且收到“无法识别节点检查器”或有关 Windows JScript 错误的消息...尽管进行了全局安装、添加到 PATH 等,那么这可能会有所帮助。

导航到 C:\Users\urusername\AppData\Roaming\npm

然后运行 ​​node-debug.cmd 或 node-inspector.cmd

你应该得到像

这样的神奇词
Node Inspector v0.12.7
Visit http://127.0.0.1:8080/?port=5858 to start debugging.
Debugger listening on port 5858

太棒了。如果您知道更好的解决方案,请告诉我

【讨论】:

以上是关于如何在 Windows 上调试基本的 node.js 应用程序(不是 http)的主要内容,如果未能解决你的问题,请参考以下文章

在 Linux 上为 Windows 开发人员调试

如何在 Windows 10 上调试丢失的 dll

Windows调试1.WinDbg基本使用-异常基础知识

如何从 Windows 调试离子视图中的应用程序?

如何在 Windows 上构建/调试(完整)LibTorch 源?

如何在Windows下构建ARM Linux QT开发环境