【问题标题】:Debug Node.JS on VS Code EADDRINUSE error在 VS Code EADDRINUSE 错误上调试 Node.JS
【发布时间】:2016-07-12 20:42:38
【问题描述】:

我正在尝试在 VS Code 上调试 Node.JS 应用程序,但是当终端打开时,我收到以下消息:

错误:监听 EADDRINUSE :::5858

我的应用程序使用了一个名为 StrawJS (https://github.com/simonswain/straw) 的框架,它同时启动了一些不同的进程。我认为这是错误的原因,因为有许多不同的进程试图使用相同的调试器。

我发现了一个类似的问题 (VSCode will not stop on breakpoints when first node prcess forks a second) 但是在 attach.js 文件上配置端口不起作用,问题仍然存在。

这是我实际的 launch.json 文件:

{
"version": "0.2.0",
"configurations": [
    {
        "name": "Launch",
        "type": "node",
        "request": "launch",
        "port": 5858,
        "program": "${workspaceRoot}/run.js",
        "stopOnEntry": false,
        "args": [],
        "cwd": "${workspaceRoot}",
        "preLaunchTask": null,
        "runtimeExecutable": null,
        "runtimeArgs": [
            "--nolazy"
        ],
        "env": {
            "NODE_ENV": "development"
        },
        "externalConsole": true,
        "sourceMaps": false,
        "outDir": null
    }
]}

谢谢!

【问题讨论】:

  • 我收到此错误是因为节点发现此端口已被另一个进程使用...您是否尝试过其他端口?
  • 是的,我尝试了一些不同的端口

标签: javascript node.js visual-studio-code


【解决方案1】:

我有同样的问题。如果您从 CMD 启动节点 --debug,您只需在 VS Code 中附加到进程(如果您尝试在同一端口上再次从 VS Code 启动它,则会导致错误 - 这是我的错误)。

在 launch.json 中定义附加配置对象,如下所示:

{
    "type": "node",
    "request": "attach",
    "name": "Attach to Process",
    "port": 5858
}

在左上角的下拉列表中选择附加到进程,然后按绿色播放按钮 - 开始调试。

【讨论】:

  • 如果我在 VSCode 复合启动配置中将您的 Attach to [Node] Process 对象与 (gdb) Launch Process 对象结合起来并选择复合,那么您刚刚获得声誉积分的上述出色答案是否仍然有效左上角下拉菜单中的启动选项,然后按绿色播放按钮 - 开始调试。所以我可以无缝地进入 node.js 进程,该进程首先调用自定义 C++ 插件,然后进入 C++ 插件的断点,然后返回用于断点调试的原始 node.js 进程?谢谢。
  • 很抱歉,我没有使用插件的经验。但是,这只是一个如何将 VSCode 附加到节点的过程;它应该对组合调试器没有影响。
  • EADDRINUSE: PORT 5858 的问题只发生在我的 DELL WINDOWS 10 笔记本电脑上,该笔记本电脑运行 RedHat Linux 虚拟盒,安装了节点 v6.11.1,当 DELL 笔记本电脑对接并连接到公司以太网网络时.当我没有连接到公司网络时,不会出现 EADDRINUSE 问题。一位同事告诉我,他认为端口 5858 可能已经被代理使用,可能是 http-proxy,但是当我在 Windows 10 终端和 RedHat Linux 虚拟机上运行 EADDRINUSE 时,端口 5858 没有条目。如何我要解决这个问题吗?谢谢。
  • 在使用带有断点的 VSCode IDE 调试器调试它们时,VSCode IDE 是否可以在 CMD 的 2 个节点进程之间跳转,例如 node debug main.js 和 node debug app.js?如果是这样,我的 launch.json 应该是什么样子?另外,我是否需要在 CMD 终端中启动 Firefox VSCode 调试适配器?我想使用 node debug main.js 而不是 node --debug main.js。非常感谢。
猜你喜欢
  • 2017-06-24
  • 2018-05-13
  • 1970-01-01
  • 2015-07-21
  • 2015-10-09
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 2015-08-30
相关资源
最近更新 更多