2015-10-06 35 views
0

我按照这里的说明:https://github.com/node-inspector/node-inspectorNode-Inspector无法打开套接字

很简单。 npm install node-inspector。在一个shell运行node-inspector,另一个运行node --debug app.js。 Shell为调试器吐出具有特定端口的本地主机地址。在浏览器中打开该地址 - 加载您的代码。从那里添加断点,调试网络等。

但这不起作用。 下面的消息不断地登录我的外壳:

Failed to open socket on port 5858, waiting 1000 ms before retrying

..和无连接而成。

所以我的问题是有人有这个问题,并成功地找到了解决方案。很想得到这个工作,将是超级有用的。我唯一的服务器端调试器的经验是Ruby的Byebug,这是一个小菜一碟。

回答

1

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

基于这个答案

如果您的应用程序在通过Node.js的核心模块“集群”集群模式下运行下面的评论的更新,那么你最终得到多个工作进程,在他们每个人试图在端口5858上侦听。

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

相反,你必须:

  1. 未启用调试器启动应用程序。
  2. 然后,您需要找到您想要调试的工作进程的pid(进程id)。
  3. 一旦你有了PID,你就需要在目标进程中启用调试器。您可以在UNIX上运行kill -1 <pid>,或使用适用于所有平台的node debug -p <pid>。在继续进行之前,请不要忘记退出node debug
  4. 一旦目标进程调试程序在5858上进行侦听,就可以按照常规方式启动Node Inspector。

我的回答基于以下博文:https://strongloop.com/strongblog/whats-new-nodejs-v0-12-debugging-clusters/,查看更多详情。

+0

lsof的-i:8080 //显示端口正在运行的节点检查的过程8080 lsof的-i:5858 //没有显示出过程 我不认为这是问题,对端口的进程5858是不是运行。 –

+0

您是否可以在Node的本地群集中运行应用程序?另外什么是您的节点版本? –

+0

节点v0.10.40看起来它可能正在群集中运行。 –

相关问题