当前位置 : 主页 > 网页制作 > Nodejs >

SuperAgent Node.js连接被拒绝

来源:互联网 收集:自由互联 发布时间:2021-06-16
我对Node.js很新,所以这可能是一个基本的理解问题,但是当我不认为我应该这样时,我从一个超级的http请求中得到了ECONNREFUSED: $curl http://localhost:5000/{"you": "looking good"}$node var request = requ
我对Node.js很新,所以这可能是一个基本的理解问题,但是当我不认为我应该这样时,我从一个超级的http请求中得到了ECONNREFUSED:

$curl http://localhost:5000/
{"you": "looking good"}

$node
> var request = require("superagent");
> var req = request.get("http://localhost:5000/").on('error', function (err) {
    console.log("There's an emergency is going on.", err)
  }).end(function (data) {
    console.log("All is well", data.body)
  });

There's an emergency is going on. { [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' }

我做了什么假设打破了这个?我实际上是在编写同构JavaScript和完全相同的代码,使浏览器上的http查询工作正常!

这听起来像是防火墙问题,但首先从终端运行ping localhost.您应该看到localhost具有IP 127.0.0.1.如果不是您的主机文件可能不正确或未加载,则需要修复.

如果它是正确的,请一次尝试这些,然后重复curl和superagent请求进行比较.如果一步不起作用,请将其反转并移至下一步:

>禁用任何防火墙(如果这是问题,您应该为节点添加规则而不是禁用防火墙)
>禁用任何防病毒软件(再次添加权限而不是永久禁用)
> sudo setenforce 0如果你在* nix上(撤消sudo setenforce 1)
> curl和superagent将使用不同的用户代理字符串 – 您是否正在运行代理?运行curl http:// localhost:5000 / -vvv以确切了解curl正在做什么

如果这些仍然不起作用,您可以尝试使用像wireshark或tcpdump这样的数据包捕获工具来跟踪HTTP请求并查看它被拒绝的位置.

网友评论