如何在 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)的主要内容,如果未能解决你的问题,请参考以下文章