【问题标题】:Node-inspector with Express 4Express 4 的节点检查器
【发布时间】:2014-07-10 23:10:56
【问题描述】:

我正在尝试使用 Express 4 应用程序运行 node-inspector -- 我在 Vagrant 框中运行它,但能够在浏览器中查看页面而没有任何问题(我在 vagrant 机器上的端口可用于主机)。

我使用npm startnode --debug bin/www 启动应用程序,然后启动节点调试器bin/www。我在浏览器中加载了检查器,它在第一行命中了初始断点,但是在页面上执行任何会触发断点的调试操作都会导致EADDRINUSE(也就是端口正在使用)错误。我对可能导致这种情况的原因感到有些困惑,但是,很可能我使用的命令可以在 Express 3 而不是 4 上运行。此外,我可能缺少一些配置来运行调试器主机的浏览器,但在 vagrant box 上运行检查器?

【问题讨论】:

    标签: node.js debugging express node-inspector


    【解决方案1】:

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

    node --debug bin/www 然后启动 node-debugger bin/www。

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

    总结一下:

    • node-debug bin/www 以调试模式启动您的应用程序并在同一进程中启动节点检查器
    • node --debug bin/www 在调试模式下启动您的应用程序。这应该与一个单独的终端窗口相结合,您可以在其中将node-inspector 作为单独的进程运行。我推荐这种方法,但任何一种都应该可行。

    这是我开始解决此问题的建议。尝试使用最简单的命令形式让一切运行起来:

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

    【讨论】:

    • 感谢您的好评。你是完全正确的——同时运行两者都会导致问题。谢天谢地,端口上没有其他东西在运行,所以更简单的操作是成功的:)
    • 我遇到的问题是执行这一行 $ nodemon --debug app.js 这就是我需要的 $ nodemon --debug-brk bin/www
    • 如果您的应用在 3000 http://localhost:8080/debug?port=5858 上运行,您是否应该将端口更改为 3000 .. 而不是 8080。
    • @jackblank 不正确。 8080 是节点检查器 Web 应用程序。您的应用程序的端口无关紧要,您可以调试一个不侦听任何端口(如脚本)的应用程序。
    【解决方案2】:

    与主管相同的过程。

    【讨论】:

      猜你喜欢
      • 2015-09-22
      • 2014-10-28
      • 2017-10-04
      • 2013-09-13
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      相关资源
      最近更新 更多