- ポートの解放: まず最初に、ポート3000を使用している既存のプロセスを終了することができます。これにより、ポートが解放され、新しいアプリケーションがポートを使用できるようになります。
$ lsof -i :3000
上記のコマンドを使用して、ポート3000を使用しているプロセスを特定し、そのプロセスを終了します。
- ポートの変更: もう一つの方法は、アプリケーションが使用するポート番号を変更することです。一般的に、ポート番号3000以外の空いているポートを指定することで、このエラーを回避することができます。
const port = 4000; // 使用する新しいポート番号
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
上記の例では、ポート番号を4000に変更しています。アプリケーションを起動する際に新しいポート番号を指定し、エラーを回避します。
- タイムアウトの設定: 場合によっては、前のプロセスがポートを解放するまでに時間がかかることがあります。この場合、タイムアウトを設定することで、待機時間を制御できます。
const server = app.listen(3000, () => {
console.log('Server is running on port 3000');
});
server.on('error', (error) => {
if (error.code === 'EADDRINUSE') {
setTimeout(() => {
server.close();
server.listen(3000);
}, 1000); // 1秒待機してポートを再試行する
}
});
上記の例では、ポートが既に使用されている場合に1秒待機してポートを再試行するように設定しています。