Node.jsでのEADDRINUSEエラーの解決方法と回避策


このエラーを解決するためには、いくつかのシンプルで簡単な方法があります。以下にそれらの方法とコード例を示します。

  1. ポート番号の変更: 最も簡単な解決策は、コード内で使用しているポート番号を変更することです。競合しているポート番号を避けるために、別の空いているポート番号を指定します。

    const port = 3000; // 使用中のポート番号を変更する
    app.listen(port, () => {
     console.log(`サーバーがポート${port}で起動しました。`);
    });
    • Windows:

      netstat -ano | findstr :ポート番号
      taskkill /PID プロセスID /F
    • macOS/Linux:

      lsof -i :ポート番号
      kill -9 プロセスID
  2. タイムアウトの設定: サーバーの起動時にポートがまだ使用されている場合、一定時間待つことで解決することがあります。以下のコード例では、listen() メソッドに 0 を指定することで、空いているポートを自動的に割り当てることができます。

    const server = app.listen(0, () => {
     const port = server.address().port;
     console.log(`サーバーがポート${port}で起動しました。`);
    });

エラーハンドリングと予防に関する詳細な情報は、公式のNode.jsドキュメントやコミュニティのリソースを参照してください。