从NodeJS在运行本地服务器上ECONNREFUSED

时间:2019-08-28 11:54:41

标签: javascript node.js localhost econnrefused

我有一个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代码中却没有。 / p>

有人有主意吗?

2 个答案:

答案 0 :(得分:0)

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

对于Mac:

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

对于Windows,请检查this

希望这会有所帮助:)

答案 1 :(得分:0)

您可能正在同一端口上运行两个服务器,而在同一端口上杀死了另一台服务器。

如果您使用的是Linux,则可以使用sudo fuser -k -n tcp 5000终止端口

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