Node-Inspector无法打开套接字

时间:2015-10-06 20:45:21

标签: node.js node-inspector

我按照此处的说明进行操作: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,这对于设置来说是件小事。

1 个答案:

答案 0 :(得分:1)

您看到的消息是打印的,因为有另一个进程侦听端口5858.可以是另一个应用程序,也可以只是调试器下的另一个节点进程实例。

基于此回答下方评论的更新

如果您的应用程序通过Node.js核心模块“cluster”以集群模式运行,那么您最终会得到多个工作进程,其中每个进程都尝试侦听端口5858.

Node Inspector无法同时调试多个工作进程。您必须选择一个进程并仅在该进程中启用调试器。当您通过node --debug启动应用程序时,所有进程都会尝试启用调试器,因此您无法使用此命令。

相反,你必须:

  1. 在未启用调试器的情况下启动您的应用。
  2. 然后,您需要找到要调试的工作进程的pid(进程ID)。
  3. 获得PID后,需要在目标进程中启用调试器。您可以在UNIX上运行kill -1 <pid>,或使用适用于所有平台的node debug -p <pid>。在继续进行之前,请不要忘记退出node debug
  4. 一旦目标进程在5858上监听调试器,您就可以按常规方式启动Node Inspector。
  5. 我的回答基于以下博文:https://strongloop.com/strongblog/whats-new-nodejs-v0-12-debugging-clusters/,请查看详细信息。