node.js的ECONNREFUSED错误不会在其他客户端中发生

mwyxok5s  于 2022-11-22  发布在  Node.js
关注(0)|答案(8)|浏览(125)

我正在用node.js客户端发出http请求,但收到ECONNREFUSED错误。
下面是节点请求:

var options = {
  host: 'localhost',
  port: 8080,
  path: '/explorers/1.0/agegroup',
  method: 'GET'
};

var req = http.request(options, function(res) {
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});

req.on('error', function(e) {
  console.log(e);
});

req.end();

它给了我错误:

{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' }

但是,当我对不同的客户端(本例中为curl)发出相同的请求时:

$ curl http://localhost:8080/explorers/1.0/agegroup
{... response JSON ...}

其他注意事项:

  • 我尝试将主机更改为www.google.com,将端口更改为80,节点成功建立连接
  • 我尝试过更改服务器的端口,但仍然可以向所有客户机发出请求,node.js除外(它仍然获得ECONNREFUSED
  • 我连接到的服务器是CherryPy WSGI Server。当我尝试连接到localhost:8080的node服务器时,它工作正常,这让我认为是服务器的问题,除了其他客户端使用CherryPy服务器。
  • 我试过使用我的浏览器正在使用的相同的头,但那不起作用,而且看起来问题是在TCP级别,所以HTTP头应该不是问题。

我的node请求有什么问题?

elcex8rz

elcex8rz1#

我不同意索曼的观点。
我一直在为这件事烦恼,但确实,当以如下方式调用时,nodejv0.10.24和v0.10.25拒绝连接到PHP5.4开发服务器(PHP的命令行服务器):

php -S localhost:8088

浏览器、curl和其他所有东西都连接得很好。然而,果不其然,将绑定地址更改为:

php -S 127.0.0.1:8088

nodejs使用xmlrpc连接得很好。这发生在macosx10.9.1上。非常奇怪。

uyto3xhc

uyto3xhc2#

我想有时候你只需要远离问题...
我找到了一个解决办法,但它似乎没有回答这个问题,而且我真的不喜欢它。
我将CherryPy服务器配置更改为在127.0.0.1而不是localhost服务,node客户机开始工作。

fykwrbwg

fykwrbwg3#

我也面临同样的问题。
请注意,Windows 7默认情况下不包含C:\Windows\System32\drivers\etc\hosts中的localhost条目(wikipedia参考)
添加localhost条目对Node.js(0.10.25)没有影响,因为它显然完全跳过了hosts文件。
使用127.0.0.1作为本地地址,这将工作在你的主机文件中。

nhhxz33t

nhhxz33t4#

我遇到了同样的问题。我可以通过127.0.0.1用我的系统的IP地址替换localhost或www.example.com来解决它(使用ifconfig作为IP地址)。

db2dz4w8

db2dz4w85#

我在访问第三方网址时也遇到了同样的问题。我试着使用dns(subdomain.domain.com)和ip(xxx.xxx.xxx.xxx),但都不起作用。
经过一番挣扎,后来我意识到这是一个问题,在服务器(subdomain.domain.com)端,这是没有响应,并下降了。
我不同意这是localhost /127.0.0.1(或域名与IP地址)的问题。(在上述情况下,这肯定是不正确的主机Map的情况)

rslzwgfq

rslzwgfq6#

$如果配置
docker 0链路封装:以太网硬件地址....
公司172.17.255.255地点255.255.0.0公司
变量数据库设置= {
主机:“172.17.0.1”,
用户:'root',
密码:'.......',
数据库:'.......',
端口:“3306”
};
docker ip -〉主机

lhcgjxsq

lhcgjxsq7#

最适合我的是使用与Xampp相同的端口。

rsaldnfx

rsaldnfx8#

我通过检查我的mysqlBench解决了这个问题,我发现很难连接到我的本地mysql
/usr/local/mysql/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html/html
它是直线工作的

相关问题