node.js 错误:连接 ECONNREFUSED;来自服务器的响应
Posted
技术标签:
【中文标题】node.js 错误:连接 ECONNREFUSED;来自服务器的响应【英文标题】:node.js Error: connect ECONNREFUSED; response from server 【发布时间】:2016-05-13 23:14:26 【问题描述】:这个小程序有问题:
var http = require("http");
var request = http.request(
hostname: "localhost",
port: 8000,
path: "/",
method: "GET"
, function(response)
var statusCode = response.statusCode;
var headers = response.headers;
var statusLine = "HTTP/" + response.httpVersion + " " +statusCode + " " + http.STATUS_CODES[statusCode];
console.log(statusLine);
for (header in headers)
console.log(header + ": " + headers[header]);
console.log();
response.setEncoding("utf8");
response.on("data", function(data)
process.stdout.write(data);
);
response.on("end", function()
console.log();
);
);
控制台中的结果是这样的:
事件.js:141 投掷者; // 未处理的“错误”事件 ^ 错误:连接 ECONNREFUSED 127.0.0.1:8000 在 Object.exports._errnoException (util.js:870:11) 在exports._exceptionWithHostPort (util.js:893:20) 在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1063:14)我不明白为什么会这样。
【问题讨论】:
你想用代码实现什么? 发生这种情况是因为它无法连接到端点 - 在这种情况下,http://localhost:8000
无法访问
你应该在 localhost:8000 上运行一些东西吗?因为你现在看起来不像。
尝试使用其他程序。 8000 端口是免费的
@MarcoGhieri 你说的免费是什么意思?没有什么在听吗?这可以解释错误。
【参考方案1】:
从您的代码看来,您的文件包含向 localhost (127.0.0.1:8000) 发出 get 请求的代码。
问题可能是您没有在本地机器上创建服务器来监听端口 8000。
为此,您必须在 localhost 上设置可以满足您的请求的服务器。
创建 server.js
var express = require('express');
var app = express();
app.get('/', function (req, res)
res.send('Hello World!'); // This will serve your request to '/'.
);
app.listen(8000, function ()
console.log('Example app listening on port 8000!');
);
运行 server.js : 节点 server.js
运行包含发出请求的代码的文件。
【讨论】:
注意。作为一般规则,没有 root 权限运行的进程不能绑定到 1024 以下的端口。 @RoccoMusolino 上面的答案对我有用。在 iMac 上与此错误斗争一整天后,sudo
成功了!我想知道 node 或 ios(putting this here for web crawler)
在哪里得到127.0.0.1:80
即使禁用了所有代理设置,我仍然收到此错误【参考方案2】:
请使用 [::1] 代替 localhost,并确保端口正确,并将端口放在链接内。
const request = require('request');
let json =
"id": id,
"filename": filename
;
let options =
uri: "http://[::1]:8000" + constants.PATH_TO_API,
// port:443,
method: 'POST',
json: json
;
request(options, function (error, response, body)
if (error)
console.error("httpRequests : error " + error);
if (response)
let statusCode = response.status_code;
if (callback)
callback(body);
);
【讨论】:
你能解释一下为什么有人应该这样做吗? 这也适用于我。这背后的原理是什么? 也为我工作。一旦我将port
添加到options
,错误就消失了。【参考方案3】:
我在我的 mac 上遇到了同样的问题,但在我的情况下,问题是我之前没有运行数据库 (sudo mongod);当我第一次在控制台上运行 mondo sudod 时,问题就解决了,一旦完成,在另一个控制台上,与服务器的连接......
【讨论】:
【参考方案4】:我运行了本地的mysql数据库,但不是在管理员模式下,这引发了这个错误
【讨论】:
【参考方案5】:如果您已经从任务管理器中停止了 mongod.exe 服务,则需要重新启动该服务。在我的情况下,我从任务管理器中停止了服务,并且在重新启动时它不会自动启动。
【讨论】:
【参考方案6】:只需在节点项目中运行以下命令
npm install
它对我有用
【讨论】:
【参考方案7】:我收到此错误是因为我的 AdonisJS 服务器在我运行测试之前没有运行。运行服务器首先修复它。
【讨论】:
【参考方案8】:只需在节点项目中运行以下命令
npm 安装 它对我有用
【讨论】:
这是已提供答案的副本:***.com/a/66218118/17175441【参考方案9】:这是非常轻微的错误。当我在 nodejs 上的进程之间实现事件服务器时。
只需检查您用于运行服务器的软件包,例如 Axios。
也许您已经重新定位了文件或断开了浏览器上的某些缓存数据。
很简单,在你的相关目录中运行以下命令
我用的是axios所以我用了
npm i axios
重启服务器
npm start
这行得通,
谢谢 万国数据KS
【讨论】:
【参考方案10】:在代码中使用代理属性应该可以正常工作
const https = require('https');
const request = require('request');
request(
'url':'https://teamtreehouse.com/chalkers.json',
'proxy':'http://xx.xxx.xxx.xx'
,
function (error, response, body)
if (!error && response.statusCode == 200)
var data = body;
console.log(data);
);
【讨论】:
以上是关于node.js 错误:连接 ECONNREFUSED;来自服务器的响应的主要内容,如果未能解决你的问题,请参考以下文章
Node.js MySQL - 错误:连接 ECONNREFUSED
postgres 与 node.js 连接中的 SASL 错误
在 node.js 中编写 ECONNRESET 错误和套接字连接检查
Heroku + MongoLab 插件与 Node.js 应用程序的连接错误 - 错误:连接 ECONNREFUSED 127.0.0.1:27017