34

我编写了一个简单的代码并将其保存在文件 try.js 中。

var http = require('http');
var makeRequest = function(message) {
  var options = {
    host: 'localhost', port: 8080, path: '/', method: 'POST'
  }
  var request = http.request(options, function(response){
    response.on('data', function(data){
      console.log(data);
    });
  });

  request.write(message);
  request.end();
}
makeRequest("Here's looking at you, kid.");

当我通过终端运行它时,它会出错

throw er; // Unhandled 'error' event,
Error: connect ECONNREFUSED
at errnoException (net.js:884:11)
at Object.afterConnect [as oncomplete] (net.js:875:19)error' event
4

6 回答 6

46

对我来说,问题是另一个实例正在运行。搜索其他正在运行的节点实例并将其杀死。它应该在之后正确恢复。

于 2014-02-06T12:09:41.767 回答
12

发生这种情况是因为没有在 localhost:8080 上监听。以下是如何处理请求错误的示例 如何在 node.js 中捕获 http 客户端请求异常

于 2013-05-02T06:50:08.857 回答
7

另一台服务器在同一端口 8080 上运行,因此您需要终止并启动您的实例。

查找正在运行的实例

$ netstat -nlp | grep 8080

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::8881                 :::*                    LISTEN      28207/node    

使用 pid 杀死现有的服务器实例

$ kill -9 28207

启动实例

$ node server.js 
于 2017-04-04T10:26:41.290 回答
0

更改端口号。因为您的端口已经在运行。

端口号如:8000,8001,3000,3001,8080 ....

 app.listen(3030,()=>{})

(或)杀死您的端口号。如果您使用的是 Ubuntu 操作系统,请执行此步骤。

  1. 使用以下命令使用终端查找 PID 或 TCP: sudo netstat -ap | grep :"端口号"
  2. 使用此命令终止进程: kill -9 "process_id or tcp_id"
  3. 运行你的 NodeJ
于 2018-01-10T15:01:16.957 回答
0

不同的进程已经在同一个端口上运行。杀死正在运行的进程或更改当前代码中的端口号。您的问题将得到解决!

于 2019-08-10T04:24:39.353 回答
0

另一台服务器正在同一个端口 8080 上运行,因此请更改此代码中的端口或终止端口 8080 并重新启动它。

于 2018-11-03T10:28:32.663 回答