【问题标题】:ECONNREFUSED on running localhost server from NodeJS从 NodeJS 运行 localhost 服务器时 ECONNREFUSED
【发布时间】:2020-01-01 15:32:51
【问题描述】:

我有一个 NodeJS 服务器在我的本地机器上启动并运行,它正在监听端口 50000。 从另一台也在我的本地机器上运行的服务器,我需要向该服务器发出一个简单的 GET 请求,但我得到的只是一个 ECONNREFUSED 错误:

{ Error: connect ECONNREFUSED 127.0.0.1:50000
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 50000 }

我的请求如下所示,使用request:

var options = {
    url: "http://localhost:50000",
    method: "GET"
}
request(options, function(error, response, body) {
    if (error) {
        console.log("[" + getDateTime() + "] Error connecting to localhost:");
        console.log(error);
        return;
   }
   // continue ...

我知道服务器已启动并正在运行并且端点已定义,因为我可以在邮递员或浏览器中向完全相同的 url 发出请求并获得响应,但不知何故不在我的 NodeJS 代码中。

有人有想法吗?

【问题讨论】:

    标签: javascript node.js localhost econnrefused


    【解决方案1】:

    可能的问题是其他进程已经在您尝试使用的同一端口上运行,要么更改您的端口,要么终止您端口上的现有进程。要终止端口上的进程,您可以尝试:

    Mac 版:

    sudo kill $(lsof -t -i:8000) 
    # or 
    sudo fuser -k -n tcp 8000 
    # or 
    fuser -k 8000/tcp
    

    对于 Windows,请检查 this

    希望这会有所帮助:)

    【讨论】:

      【解决方案2】:

      您可能在同一端口上运行两台服务器,在同一端口上终止另一台服务器。

      如果你在linux上,你可以使用sudo fuser -k -n tcp 5000杀死端口

      或者如果您使用的是 Windows:taskkill /PID 5000 /F

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-09
        • 1970-01-01
        • 1970-01-01
        • 2018-09-04
        • 2019-06-12
        • 2014-10-13
        相关资源
        最近更新 更多