web-dev-qa-db-ja.com

Node.js Port 3000はすでに使用されていますが、実際には使用されていませんか?

私は数週間、node.jsプロジェクトで作業してきましたが、うまく機能しています。通常、「npm start」を使用してアプリを実行し、localhost、ポート3000のブラウザーで表示します。

今日、npm startの使用中に次のエラーが発生し始めました。

Server started on port 3000                                                                                                                                                                                         
Port 3000 is already in use 

リソースモニターを確認しましたが、ポート3000で実行中の他のプロセスはありません。このエラーメッセージが表示されるのはなぜですか?

私のapp.jsには、ポートを設定する次のコードがあります...これは間違っていますか?以前はうまく機能していたので、何が間違っているのかわかりません。

// Set Port
app.set('port', (process.env.PORT || 3000));
app.listen(app.get('port'), function() {
    console.log('Server started on port '+app.get('port'));
});

助けてくれてありがとう!

編集:どのプロセスがポートを使用しているかを確認するためにnetstatとTCPViewを実行しようとしましたが、そのポートを使用しているものはありません。ラップトップも再起動しようとしましたが、同じエラーが表示されます。

47
user2573690

そのプロセスを強制終了する方法を検索できます。

Linux/Mac OSの場合は、端末で(Sudo) runを検索します。

$ lsof -i tcp:3000
$ kill -9 PID

Windowsの場合:

netstat -ano | findstr :3000
tskill typeyourPIDhere 

git bashのtskilltaskkillを変更する

122
Animesh Singh

@sovaが提案したように時々それが起こりますこれは私に時々起こります、EADDRが使用中です。通常、アプリを実行しているバックグラウンドに隠れているターミナルウィンドウがあります。そして、それは私にも当てはまります。

ターミナルを長時間開いたとき、そうです、そうです、プロセスを停止しました。しかし、時々それはバックグラウンドで止まらなかった。 だから、最善の解決策は、ターミナルを閉じて、もう一度起動することです。それはあなたの問題を解決します。私の場合はうまくいくからです。

また、

Sudo lsof -i:<PORT_NO>

現在はインスタンスを閉じますが、バックグラウンドでプロセスを停止できません。だから一度、

Sudo kill <PID>

動作しますが、コードを更新して保存すると、Nodemonと同様にこの問題が再び発生します。

したがって、端末を終了すると問題が解決します。OR

  killall -9 node
17
techyaura

Windowsの場合、タスクマネージャは実行中のノードプロセスを確実に表示します。プロセスを強制終了すると、問題が解決します。

Уменятакаяжепроблема。 (СледующиешагихорошоработаютвWindows 10):

  1. Открытьдиспетчерзадач(нажмитеCtrl+Alt+Delete
  2. Выберитевкладку "Процессы"
  3. Искать 'Node.js:серверныйJavaScript'
  4. Выберитеегоинажмитекнопку "Завершитьзадачу"

npm startを使用してください。

Надеюсь、этопоможетвам。

10
Mahyar

EADDRが使用中の場合、これは時々起こります。通常、アプリを実行しているバックグラウンドで隠れているターミナルウィンドウがあります。端末ウィンドウでctrl + Cを使用してプロセスを停止できます。

または、おそらくコピー/パスタのためにポートを複数回リッスンしています=)

3
sova

GoogleからHigh Sierraのソリューションを入手しました。

Macosおよび一部のアプリ(pingを含む)のネットワーク設定で変更されたものは、localhostを解決できません。

/ etc/hostsの編集は修正のようです:

cmd:Sudo nano /etc/hosts/ content 127.0.0.1 localhost

または、単純に(/ etc/hostsが空であることが確実な場合)Sudo echo '127.0.0.1 localhost' > /etc/hosts

2
sznowicki

同じことを見て、成功せずに上記のすべての提案を試しました。これを解決する手順は次のとおりです。-wifiをオフにします-npm start(これは動作するはずです)-wifiをオンにします

私は根本的な問題が何であるか正確にはわかりませんが、それは私のためにそれを解決しました。

2
James Smith

タスクマネージャーを開きます(Ctrl + Alt + Delを押します 'プロセスタブ'を選択します 'Node.js:サーバー側JavaScript'を検索します選択して 'タスクの終了'ボタンをクリックします

1
Omar bakhsh

バックグラウンドで実行されている管理プロセスである可能性があり、netstatには表示されません。
tasklist | grep nodeを使用して、この管理プロセスのPIDを見つけてから、kill PIDを使用します

0
tnoel999888

EADDRINUSEがアプリを追加できない理由を見つけるのに2時間費やしました(他のNode-Expressサーバーは大丈夫でした)... lazyConnect: true,をデータソース構成に追加した後、機能し始めました。

なぜ助けたのか聞かないでください。私は知らない。同じ問題を抱えている人のためだけに、この情報をここに掲載しています。

0
test30

Package.jsonスクリプトinlcudeで:

"start": "nodemon app.js --delay 1500ms"

問題は私にとって、古いポートが再起動のためにnodemonによって時間内にシャットダウンされなかったときだったと信じています。 multerを使用して問題が発生しました。

0
Kalkhas

WindowsでGit Bashを使用してこの問題が発生しました。 npm startまたはnode app.jsを実行します。 Ctrl + Cですぐに終了し、npm startまたはnode app.jsを使用してサーバーを再起動しようとすると、このエラーメッセージが表示されます。

通常のWindowsコマンドプロンプトでこれを行うと、問題なく動作します。

または別の方法で行うことができます。 タスクマネージャーを開き、「Node.js:Server-side JavaScript」行を見つけます。 それを選択してタスクを終了。これで動作するはずです。

ありがとう。

0
Amanullah Aman

Windowsユーザーの場合、 CurrPorts ツールを使用して、使用中のポートを簡単に削除できます。

enter image description here

0
Zuhair Taha

ブラウザでローカルホストを開いてみてください。アドレスバーにlocalhost:3000と入力するだけです。

アプリを開くと、以前のnpm runがまだアクティブであることを意味します。これで、同じアプリを設計している場合、または以前に実行したアプリのindex.jsでコードを微調整して(おそらくブラウザのタブを更新してクラッシュさせてください;).....新しいアプリディレクトリから再度npm run startを実行してください。お役に立てれば! :)

または

タスクマネージャー(WINDOWS_KEY + X>タスクマネージャー)を開くと、「Node.js:Server-side JavaScript」行が表示されます。それを選択してタスクを終了します。



そうでない場合は、アプリの.envファイルを変更してport:3002を含め、新しいアプリを実行します。これにより、異なるポートで2つの個別のアプリを実行できます。乾杯!!

0
Mohit Singh

webstormを使用している場合は、デフォルトのポートがファイルから3000でないことを確認してください->設定->ビルド、実行、展開->デバッガー

ビルトインサーバーポート

「63342」に設定するか、この回答を参照してください Change WebStorm LiveEdit Port(63342)

0
Muhammad Saleh

Macユーザー向けのこの簡単なソリューションを見つけました。

killall node
0
Ryan Dhungel