Error: listen EADDRINUSE: address already in use
Node.jsで指定したポートが既に使用されている場合のエラー
概要
Node.jsでHTTPサーバーやWebSocketサーバーを起動する際、指定したポート番号が既に他のプロセスで使用されている場合に発生するエラーです。
エラーメッセージ
Error: listen EADDRINUSE: address already in use :::3000
Error: listen EADDRINUSE: address already in use 127.0.0.1:8080
原因
- プロセスの二重起動: 同じアプリケーションを複数回起動している
- 前回のプロセスが残存: 正常終了せずプロセスが残っている
- 他のアプリケーション: 別のアプリケーションが同じポートを使用
- 開発ツール: Vite、Webpack Dev Serverなどが同じポートを使用
解決策
1. 使用中のプロセスを確認して終了
| |
2. 別のポートを使用
| |
3. 空いているポートを自動検出
| |
4. エラーハンドリングを追加
| |
5. プロセス終了時のクリーンアップ
| |
6. npmスクリプトでプロセスを終了
| |
7. Dockerでの対処
| |
よくある間違い
- 開発サーバーを複数のターミナルで起動してしまう
- Ctrl+Cでプロセスを終了せずにターミナルを閉じる
- Docker内外で同じポートを使用しようとする
関連エラー
参考リンク
Node.js の他のエラー
この記事は役に立ちましたか?