使用node-inspector调试node.js

时间:2014-04-28 12:19:28

标签: node.js node-inspector

我正在尝试使用node-inspector调试我的nodejs应用。但Google Chrome不会显示代码。

我正在使用以下内容,

Node.js:v0.10.26

快递:4.0.0

Node Inspector:v0.7.3

Google Chrome版本:34.0.1847.131

这就是我正在做的启动调试器..

$ node-inspector
Node Inspector v0.7.3
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.

在另一个控制台中,

$ node --debug app.js 
debugger listening on port 5858
$

然后启动Google Chrome并转到

http://127.0.0.1:8080/debug?port=5858

它打开了节点检查器但没有任何代码。所有窗口都是空的。

注意到我没有收到'快速服务器侦听端口3000'

根据node-inspector fails to connect to node尝试所有但没有运气

无法解决我所缺少的问题。很高兴你有任何建议......所以我可以在谷歌浏览器中调试我的Node.js应用程序。

6 个答案:

答案 0 :(得分:121)

尝试运行node --debug-brk app.js而非--debug。在节点检查程序挂钩到节点进程之前,您的应用程序可能没有暂停。使用--debug-brk将强制节点在应用程序的第一行中断,并等待调试器附加到进程。加载node-inspector Web界面是导致节点检查器附加到节点进程的原因;这就是为什么在查询字符串中包含节点调试端口的原因(localhost:8080 / debug?port = 5858)。您告诉node-inspector它应该连接到哪个端口并附加到。

这是我放在一起的动画gif,显示了一个完整的安装和运行节点检查器。

在gif中我使用--debug标志,因为我没有调试任何在启动时运行的代码。我在请求处理程序内部进行调试,该处理程序仅在请求页面时触发。因此,刷新页面会导致节点检查器在该行上中断。

我不久前还组织了一个15分钟的YouTube教程。

http://youtu.be/03qGA-GJXjI

我希望有所帮助!

答案 1 :(得分:22)

node-inspector默认尝试在启动调试窗口之前预加载所有代码。我有实例,节点检查器因为这个预加载而永远挂起。幸运的是,新版本可以选择停止预加载,从而使检查员加载更快。

尝试node-inspector --no-preload

答案 2 :(得分:6)

标准远程调试在节点6.5中完全中断。然而,它被新的内部节点功能

取代
$ node --inspect --debug-brk build/server/server.js
Debugger listening on port 9229.
Warning: This is an experimental feature and could change at any time.
To start debugging, open the following URL in Chrome:
    chrome-devtools://devtools/remote/serve_file/@62cd277117e6f8ec53e31b1be58290a6f7ab42ef/inspector.html?experiments=true&v8only=true&ws=localhost:9229/node
Debugger attached.

请参阅此处 - http://arveknudsen.com/?p=346%3Fpage_id%3D346&print=pdf - 了解更多信息

答案 3 :(得分:1)

301现在已弃用

尝试--debug-brk 然后转到chrome并输入url node --inspect-brk <your starting file name>并单击chrome://inspect, 调试器将启动,无需节点检查器

答案 4 :(得分:0)

enter image description here

在Node Inspector左侧的“Sources”选项卡中,有一个“包含三角形的框” - 突出显示“Show Navigator”。 (见上图)。打开它以查找要调试的文件,并在尚未运行的代码上设置断点。

另请注意,如果要调试在起始节点上运行的代码,则在启动时需要使用--debug-brk选项。然后,在Node Inspector中,您将必须启动应用程序(F8以运行所有)。如果要调试所有初始化代码,例如启动Web浏览器,则需要此选项。

答案 5 :(得分:0)

node-debug --no-preload app.js

这对我有用。符合this

  

我的脚本运行得太快,无法附加调试器。

     

调试过程必须以--debug-brk启动,这样就可以了   脚本在第一行暂停。

     

注意:node-debug默认为您添加此选项。