节点检查员与Express 4
我试图运行一个Express 4应用程序运行节点检查器 – 我运行这个在stream浪者箱,但能够查看浏览器中的页面没有任何问题(我有stream浪机上的端口可用于主机)。
我使用npm start
或node --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同样的过程。