Node.jsポートエラー解決 (Windows 7)
Node.jsでローカルホストのエラー「Error: listen EADDRINUSE」を解決する方法(Windows 7)
エラーの意味
「Error: listen EADDRINUSE」は、指定されたポートがすでに使用されていることを意味します。つまり、同じポートで別のアプリケーションが実行されているか、または以前のアプリケーションが正しく終了していないためにポートが占有されています。
解決方法
-
ポートの確認と変更
- ポート番号の確認
ターミナルまたはコマンドプロンプトで、実行中のアプリケーションがどのポートを使用しているかを確認します。例えば、netstat -a -p tcp
コマンドを使用できます。 - ポート番号の変更
自分のアプリケーションが使用しているポート番号を変更します。これは、アプリケーションのコードまたは設定ファイルで行うことができます。
- ポート番号の確認
-
プロセス終了
- 占有プロセスを特定
tasklist
コマンドを使用して、指定されたポートを使用しているプロセスを特定します。 - プロセス終了
taskkill /pid <プロセスID>
コマンドを使用して、占有プロセスを強制終了します。ただし、重要なプロセスを誤って終了しないように注意してください。
- 占有プロセスを特定
-
アプリケーションの再起動
- ポートが解放されたら、アプリケーションを再起動します。
例(Node.jsの場合)
Node.jsのサーバーアプリケーションがポート3000を使用しているとします。このポートがすでに使用されている場合、以下の手順で解決できます。
-
netstat -a -p tcp
このコマンドで、ポート3000を使用しているプロセスを確認します。
-
taskkill /pid <プロセスID>
占有プロセスを終了します。
-
node your_app.js
アプリケーションを再起動します。
注意
- プロセスを強制終了する前に、そのプロセスが重要なものでないことを確認してください。誤って重要なプロセスを終了すると、システムの動作に影響を与える可能性があります。
- ポート番号は、アプリケーションの設定ファイルやコードで指定されます。
-
ポート番号の変更
const express = require('express'); const app = express(); // ポート番号を3001に変更 const port = 3001; app.listen(port, () => { console.log(`Server listening on port ${port}`); });
-
const net = require('net'); // 指定されたポートが使用されているか確認 const server = net.createServer(); server.listen(3000, () => { console.log('Server listening on port 3000'); }); // エラーが発生した場合、ポートが使用されている可能性がある server.on('error', (err) => { if (err.code === 'EADDRINUSE') { console.error('Port 3000 is already in use'); // ポートを解放するためにサーバーを閉じる server.close(); } });
- エラーが発生した場合、
error
イベントハンドラーでエラーコードを確認し、必要に応じてサーバーを閉じます。 net.createServer()
を使用してサーバーを作成し、listen()
メソッドでポートを指定します。- ポートが使用されている場合は、別のポート番号を使用するか、占有プロセスを終了する必要があります。
- ポートの自動選択
``
node.js windows-7