Node.jsのEADDRINUSEエラー:8080ポートのアドレスが既に使用中です


  1. 別のポートを使用する: エラーメッセージに表示されているポートが既に使用中である場合、別のポートを指定してアプリケーションを起動することができます。たとえば、8081や3000などの別のポートを試してみることができます。
const port = 8081; // 別のポート番号を指定する
app.listen(port, () => {
  console.log(`サーバーがポート ${port} で起動しました。`);
});
  1. ポートを解放する: 既にポートが使用中である場合、そのポートを解放する必要があります。これは、ポートを使用している他のプロセスを終了することで実現できます。次のコマンドを使用して、ポートを使用しているプロセスを特定し、終了させることができます。
lsof -i :8080

上記のコマンドは、ポート8080を使用しているプロセスの情報を表示します。表示された情報を参考にして、該当するプロセスを終了させてください。

const port = 8080;
const server = app.listen(port, () => {
  console.log(`サーバーがポート ${port} で起動しました。`);
});
server.on('error', (error) => {
  if (error.code === 'EADDRINUSE') {
    console.log(`ポート ${port} はまだ使用中です。タイムアウトまで待機します...`);
    setTimeout(() => {
      server.close();
      server.listen(port);
    }, 5000); // 5秒後に再試行する
  }
});

上記のコードでは、ポートが既に使用中である場合には、5秒間待機してから再試行します。