JP.*_*JP. 5 node.js superagent
我对 Node.js 还很陌生,所以这可能是一个基本的理解问题,但是ECONNREFUSED当我认为我不应该这样做时,我从超级代理 http 请求中得到了:
$ 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' }
Run Code Online (Sandbox Code Playgroud)
我做了什么假设打破了这一点?我实际上正在编写同构 JavaScript 并且完全相同的代码使浏览器上的 http 查询工作正常!
这听起来像是防火墙问题,但首先ping localhost从终端运行。您应该看到localhost有 IP 127.0.0.1。如果没有,您的hosts文件可能不正确或未加载,需要修复。
如果正确,请一次尝试这些,然后重复curl并superagent请求进行比较。如果其中一个步骤不起作用,请反转并继续下一步:
node而不是禁用防火墙)sudo setenforce 0如果你在 *nix 上(用 撤消sudo setenforce 1)user-agent字符串 - 您是否正在运行代理?运行curl http://localhost:5000/ -vvv看看curl到底在做什么如果这些仍然不起作用,您可以尝试使用wireshark或tcpdump等数据包捕获工具来跟踪HTTP请求并查看它被拒绝的位置。
| 归档时间: |
|
| 查看次数: |
2315 次 |
| 最近记录: |