我对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查询的完全相同的代码工作正常!
答案 0 :(得分:3)
这听起来像是防火墙问题,但首先从终端运行ping localhost
。您应该看到localhost
有IP 127.0.0.1
。如果不是hosts
文件可能不正确或未加载,则需要修复。
如果正确,请一次尝试这些,然后重复curl
和superagent
请求进行比较。如果一步不起作用,请将其反转并移至下一步: