节点检查员与Express 4

我试图运行一个Express 4应用程序运行节点检查器 – 我运行这个在stream浪者箱,但能够查看浏览器中的页面没有任何问题(我有stream浪机上的端口可用于主机)。

我使用npm startnode --debug bin/www npm start应用程序,然后启动节点debugging器bin/www 。 我在浏览器中加载检查器,它在第一行打到初始断点,但在页面上执行任何操作以debugging将触发断点的操作,导致EADDRINUSE (又名端口正在使用)错误。 我有点困惑,可能是什么原因造成这个,但是,这是非常可能的,我使用的命令,可以在Express 3,而不是4的。另外,也许有一些configuration我缺less运行debugging器主机浏览器,但在stream浪盒上运行检查员?

更新 :我很确定这是你的问题:

节点–debug bin / www然后启动节点debugging器bin / www。

不要这样做。 它是一个或另一个。 他们是做同样的事情的两种方式。 我更喜欢前一种方式,因为它更简单,并且可以与节点本身一起工作,无论您是否使用节点检查器。

总结:

  • node-debug bin/www在debugging模式下启动您的应用程序,并在同一进程中启动节点检查器
  • node --debug bin/www以debugging模式启动您的应用程序。 这应该与一个单独的terminal窗口结合在一起,在这个terminal窗口中将node-inspector作为单独的进程运行 我build议这种方法,但要么工作。

这是我的build议,开始解决这个问题。 尝试使用最简单的命令forms来使所有的事情都运行:

  • 在你的stream浪主机里面的一个ssh会话terminal中,直接在前台用node --debug ./bin/www
    • v8将尝试绑定到端口5858.您应该看到此消息“侦听端口5858上的debugging器”,而不是此消息“无法在端口5858上打开套接字,在重试之前等待1000毫秒”
    • 如果您看到“无法在端口5858上打开套接字”消息,还有另一个进程正在侦听。 运行sudo netstat -ntlp来查看它是哪个进程,理解它是什么以及为什么它正在运行,然后杀死它以释放端口kill <pid-you-got-from-netstat>
  • 在stream浪主机内部的单独ssh会话terminal中,在前台启动节点检查器web服务器node-inspector 。 确保你看到正常的输出,没有错误。
  • 现在连接到可能类似于http://localhost:8080/debug?port=5858的正确URL(除非您的stream浪IP /端口不同)
  • 如果你到达那里并解决你一路上看到的任何意想不到的错误,事情真的应该起作用,但是如果没有发布关于这个EADDRINUSE错误的确切细节,你会看到。 这是你的应用程序本身的例外吗? 如果是这样,你的快递应用程序是否已经在你的stream浪者主机的其他地方运行,因此绑定在你的应用程序的Web服务器端口?

主pipe同样的过程。