我按照此处的说明进行操作:https://github.com/node-inspector/node-inspector
非常简单。 npm install node-inspector
。在一个shell中运行node-inspector
,在另一个shell node --debug app.js
中运行。 Shell使用调试器的特定端口吐出本地主机地址。在浏览器中打开该地址 - 它会加载您的代码。从那里添加断点,调试网络等。
但这不起作用。 以下消息无休止地登录我的shell:
Failed to open socket on port 5858, waiting 1000 ms before retrying
..并且没有联系。
所以我的问题是有没有人遇到这个问题并成功找到了解决方案。很想让这个工作起来,会非常有用。我在服务器端调试器方面的唯一经验是Ruby的Byebug
,这对于设置来说是件小事。
答案 0 :(得分:1)
您看到的消息是打印的,因为有另一个进程侦听端口5858.可以是另一个应用程序,也可以只是调试器下的另一个节点进程实例。
基于此回答下方评论的更新
如果您的应用程序通过Node.js核心模块“cluster”以集群模式运行,那么您最终会得到多个工作进程,其中每个进程都尝试侦听端口5858.
Node Inspector无法同时调试多个工作进程。您必须选择一个进程并仅在该进程中启用调试器。当您通过node --debug
启动应用程序时,所有进程都会尝试启用调试器,因此您无法使用此命令。
相反,你必须:
kill -1 <pid>
,或使用适用于所有平台的node debug -p <pid>
。在继续进行之前,请不要忘记退出node debug
。我的回答基于以下博文:https://strongloop.com/strongblog/whats-new-nodejs-v0-12-debugging-clusters/,请查看详细信息。