我正在尝试使用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应用程序。
答案 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教程。
我希望有所帮助!
答案 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)
在Node Inspector左侧的“Sources”选项卡中,有一个“包含三角形的框” - 突出显示“Show Navigator”。 (见上图)。打开它以查找要调试的文件,并在尚未运行的代码上设置断点。
另请注意,如果要调试在起始节点上运行的代码,则在启动时需要使用--debug-brk
选项。然后,在Node Inspector中,您将必须启动应用程序(F8
以运行所有)。如果要调试所有初始化代码,例如启动Web浏览器,则需要此选项。
答案 5 :(得分:0)
node-debug --no-preload app.js
这对我有用。符合this:
我的脚本运行得太快,无法附加调试器。
调试过程必须以--debug-brk启动,这样就可以了 脚本在第一行暂停。
注意:node-debug默认为您添加此选项。