-
ポートの競合の原因を特定する:
- 他のプロセスが同じポートを使用している可能性があるため、まずは競合しているプロセスを特定します。以下のコマンドを使用して、ポートを使用しているプロセスを確認できます。
lsof -i :3000
- 上記のコマンドではポート番号を3000としていますが、実際のポート番号に置き換えてください。出力結果から競合しているプロセスを特定し、必要に応じて停止させます。
- 他のプロセスが同じポートを使用している可能性があるため、まずは競合しているプロセスを特定します。以下のコマンドを使用して、ポートを使用しているプロセスを確認できます。
-
ポート番号を変更する:
- もしくは、競合しているプロセスを停止することができない場合は、アプリケーションで使用するポート番号を変更する方法もあります。次のようにポート番号を変更してみてください。
const port = 3001; // 例としてポート番号を3001に変更 app.listen(port, () => { console.log(`サーバーがポート${port}で起動しました。`); });
- もしくは、競合しているプロセスを停止することができない場合は、アプリケーションで使用するポート番号を変更する方法もあります。次のようにポート番号を変更してみてください。
-
タイムアウトを設定する:
- サーバーが一度終了した後、そのポートがまだタイムアウトしていない場合、再起動時にポート競合のエラーが発生することがあります。この場合、サーバーを終了する前にタイムアウトを設定する方法があります。以下の例では、サーバーを終了する前に2秒のタイムアウトを設定しています。
const server = app.listen(port, () => { console.log(`サーバーがポート${port}で起動しました。`); }); // サーバーの終了時にタイムアウトを設定 server.close(() => { console.log(`サーバーがポート${port}で終了しました。`); }, 2000);
- サーバーが一度終了した後、そのポートがまだタイムアウトしていない場合、再起動時にポート競合のエラーが発生することがあります。この場合、サーバーを終了する前にタイムアウトを設定する方法があります。以下の例では、サーバーを終了する前に2秒のタイムアウトを設定しています。
-
プロセスの再起動を試す:
- もしどれも効果がない場合は、コンピューター自体を再起動してみることも試してみてください。競合しているプロセスが完全に終了し、ポートが解放される可能性があります。