web-dev-qa-db-ja.com

Node.jsの未処理の「エラー」イベント

簡単なコードを書き、ファイル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
30
ana

私にとって、問題は別のインスタンスが実行されていたことでした。実行中の他のノードインスタンスを検索し、強制終了します。その後、適切に再開するはずです。

43
MVCaraiman

これは、localhost:8080で何もリッスンしていないために発生しています。以下に、リクエストエラーの処理方法の例を示します node.jsでHTTPクライアントリクエストの例外をキャッチする方法

11
Damian Krawczyk

別のサーバーが同じポート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 
6
KARTHIKEYAN.A

ポート番号を変更します。ポートがすでに実行されているため。

のようなポート番号:8000,8001,3000,3001,8080 ....

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

(または)ポート番号を削除します。 Ubuntu OSを使用してこの手順に従う場合。

  1. 次のコマンドを使用して端末を使用してPIDまたはTCPを検索するには:Sudo netstat -ap | grep: "port number"
  2. このコマンドを使用してプロセスを強制終了するには:kill -9 "process_id or tcp_id"
  3. NodeJを実行するには
0
SM Chinna

同じポートで別のプロセスがすでに実行されています。実行中のプロセスを強制終了するか、現在のコードのポート番号を変更します。問題は修正されます!

0

別のサーバーが同じポート8080で実行されているため、このコードのポートを変更するか、ポート8080を強制終了して再起動します。

0
Ashita Gaur