「エラー: EADDRINUSE をリッスン: アドレスはすでに使用されています」を解決するにはどうすればよいですか?

Era Eaddrinuse Worissun Adoresuhasudeni Shi Yongsareteimasu Wo Jie Juesurunihadousurebayoidesuka



Node.js は、JavaScript 言語で記述されたコードを Web ページまたはローカル サーバー上で実行できるようにするランタイム環境です。これはシングルスレッド環境であり、非同期の性質があります。サーバー経由で HTTP リクエストを送信するなど、さまざまな操作を実行するために使用できるさまざまな組み込みおよび外部モジュールが提供されます。さまざまなローカル サーバーと通信しているときに、特定のガイドに従うことで解決できる複数のエラーが発生する可能性があります。

このガイドでは、以下のセクションを取り上げて、「EADDRINUSE をリッスン: アドレスはすでに使用されています」に関する考えられる修正について説明します。

「エラー: EADDRINUSE をリッスン: アドレスはすでに使用されています」を解決するにはどうすればよいですか?

エラー: EADDRINUSE をリッスン: アドレスはすでに使用されています 」は、複数のアプリケーションまたはタスクが同じポートにアクセスしようとすると発生します。このエラーは、テスト段階または開発段階で発生する可能性があります。たとえば、理解を容易にするために、上記のエラーが生成されます。







定数 エクスプレスオブジェクト = 必要とする ( '急行' )
定数 デモアプリ = エクスプレスオブジェクト ( )
デモアプリ。 得る ( '/' ( 要求、要求 ) => {
解像度。 json ( {
名前 : 「CORS に関する Linuxhint の記事」
言語 : 「Node.js」
応用 : 'corsApp'
起源 : 『クロスオリジン』
ミドルウェア : 「コルス」
} )
} )
デモアプリ。 聞く ( 8080 ( ) => {
コンソール。 ログ ( `サーバーは開始されました 「http://localhost:8080/」 ` )
} )
デモアプリ。 聞く ( 8080 ( ) => {
コンソール。 ログ ( `サーバーは開始されました 「http://localhost:8080/」 ` )
} )

上記のコード スニペットは次のように動作します。



  • まず、「」をインポートします 急行 ” モジュールを作成し、そのオブジェクトを新しい変数に保存します” エクスプレスオブジェクト ”。この変数をコンストラクターとして使用して、「」という名前の新しい Express アプリケーションを作成します。 デモアプリ ”。
  • 次に、「」を使用して GET リクエストを作成します。 得る() ” メソッドを実行し、” を渡すことでホームページをルート ハンドラーとして設定します。 / ”を最初のパラメータとして指定します。 2 番目のパラメータは、「」を送信する匿名コールバック関数です。 JSON 」のデータを活用してレスポンスとして提供します。 json() ' 方法。
  • その後、そのアプリを同じポート番号「」で実行させます。 8080 ' 二度。同じポートを 2 回実行すると、前述のエラーが生成されます。

上記のコードのコンパイル後に生成された出力は、「エラー: listen EADDRINUSE: address selected in use」エラーの発生を示しています。







上記の出力で発生したエラーを解決するには、ポート番号を変更するか、実行中のプロセスの 1 つを停止するという主に 2 つの解決策があります。ただし、「」の問題を間接的に解決する他の修正も複数あります。 エラー: EADDRINUSE をリッスン: アドレスはすでに使用されています ' エラー。これらのソリューションと実際のデモンストレーションを以下に示します。

解決策 1: 異なるポートでプロセスを実行する

前述のエラーに対する最も推奨される解決策は、この場合のように、両方のサービスが実行されているポート番号を特定することです。 8080 ”。次に、サービスを 1 つランダムに選択し、そのポート番号を変更して、サービスがローカルホスト上でリッスンするようにしますが、異なるポート番号を使用します。議論した変更後の​​コードを以下に示します。



定数 エクスプレスオブジェクト = 必要とする ( '急行' )
定数 デモアプリ = エクスプレスオブジェクト ( )
デモアプリ。 得る ( '/' ( 要求、要求 ) => {
解像度。 json ( {
名前 : 「CORS に関する Linuxhint の記事」
言語 : 「Node.js」
応用 : 'corsApp'
起源 : 『クロスオリジン』
ミドルウェア : 「コルス」
} )
} )
デモアプリ。 聞く ( 8080 ( ) => {
コンソール。 ログ ( `サーバーは開始されました 「http://localhost:8080/」 ` )
} )
デモアプリ。 聞く ( 3000 ( ) => {
コンソール。 ログ ( `サーバーは開始されました 「http://localhost:8080/」 ` )
} )

上記のコードを実行した後に生成された出力は、「 エラー: EADDRINUSE をリッスン: アドレスはすでに使用されています 」問題が解決されました。

解決策 2: 同じポートで実行中のプロセスを停止する

「リッスン EADDRINUSE: アドレスはすでに使用されています」エラーを解決するもう 1 つの方法は、すでに使用されている特定のポートで実行されているプロセスを停止することです。これにより、ポートがアイドル状態になり、開発者がアクセスして指定されたタスクを実行できるようになります。この停止プロセスは、「」という名前の外部モジュールの助けを借りて実行されます。 キルポート ”。

たとえば、指定されたポート番号で実行されているすべてのプロセス 8080 」を使って殺されます。 キルポート 」モジュール。 「kill-port」モジュールを使用するには 2 つの方法があり、両方のアプローチを以下に説明します。

方法 1: インストール後に「kill-port」モジュールを使用する

キルポート 」モジュールはサードパーティの外部モジュールであり、このモジュールをnode.jsプロジェクト内で使用するためのものです。このモジュールは、最初に以下のコマンドを実行してダウンロードする必要があります。

npm install kill - ポート - g

下図は「」のインストール完了を示しています。 キルポート ' 変数:

インストール後、ユーザーは必要なポート番号のサービスを強制終了できます。今回の場合、ポート番号「」のサービス 8080 」は、以下のコマンドで強制終了されます。

殺す - ポート -- ポート 8080

以下の出力は、ポート「」のすべてのサービスが確認されています。 8080 ” が殺されました。

方法 2: インストールせずに「kill-port」モジュールを使用する

キルポート 」モジュールは、「」を利用することでインストールプロセスを経ずに使用できます。 npx 』のパッケージランナー。たとえば、「 キルポート 」モジュールは、以下に示す「npx」パッケージ ランナー コマンドを使用して、指定された 2 つのポートを強制終了するために使用されています。

npxキル - ポート 8080 9000

以下の出力は、指定されたポートのサービスを示しています。 9000 ' そして ' 8080 ” が殺されました。

おまけのヒント: 「kill-port」モジュールのアンインストール

「」をアンインストールするには キルポート 」モジュールをシステムからグローバルに実行して、以下のコマンドを実行します。

npmアンインストールkill - ポート - g

解決策 3: Windows で Node.js サービスを終了する

「エラー: listen EADDRINUSE: アドレスはすでに使用されています」が引き続き発生する場合は、実行中のすべての「 ノード.js 」サービスは、GUI または CLI アプローチを使用します。

CLI アプローチの使用

「」を押します。 」ボタンをクリックして検索バーを開き、「 CMD 生成された結果から、検索ボックス内の「」を選択します。次に、「」を選択します。 コマンド・プロンプト 」アプリケーションを選択し、「 管理者として実行 ' ボタン:

オプションを選択すると、コントロール プロンプトの新しいウィンドウが表示されます。バックグラウンドで現在実行中の「node.js」サービスを強制終了するには、以下のコマンドを実行します。

タスクキル / F / IMノード。 EXE

生成された出力は、「node.js」サービスが終了したことを示しています。

GUI アプローチの使用

実行中のnode.jsサービスをシステムから強制終了するには、「 タスクマネージャー 「」を押してください。 Ctrl + Shift + Esc ” キーをすぐに押します。 「タスクマネージャー」を開いた後、「」に移動します。 詳細 」タイプを選択し、「 ノード.exe ” サービスを選択し、” を押します。 タスクの終了 以下に示すように、右下方向にある「」ボタン:

Node.js の「エラー: listen EADDRINUSE: アドレスはすでに使用されています」を解決する方法は以上です。

結論

「エラー: listen EADDRINUSE: アドレスはすでに使用されています」は、複数のサービスが同時に 1 つのポートを使用しようとすると発生します。これを解決するには、ユーザーは別のポート番号を使用するか、「」コマンドを使用して指定されたポート番号ですでに実行されているサービスを強制終了する必要があります。 キルポート 」モジュール。それでもエラーが解決しない場合は、実行中のものをすべて強制終了します。 ノード.js 」サービスをタスク マネージャーから削除し、アプリケーションを再起動します。このガイドでは、「エラー: listen EADDRINUSE: アドレスはすでに使用されています」問題を解決するために考えられる解決策を説明しました。