2

Node.js の Express.js において

node bin\www

でアプリを起動、つまりサーバを起動したのですが、
ファイルを編集したのち、一度サーバを閉じてもう一度立ち上げたいというときに ^C でもサーバを閉じることができず、

Port 3000 is already in use

というエラーが出ます。

補足

npm install express-session

をした後に閉じられなくなったので、関係があると思います。

環境
OS:Windows10

trgw
  • 37
  • 6
  • 24

2 Answers2

2

既存のプロセスがバックグラウンドに残っているのが原因だと思われますが、手っ取り早くは OS 自体を再起動してから改めて node のプロセスを起動してみてください。

cubick
  • 20,987
  • 5
  • 25
  • 64
  • 再起動したら、サーバの起動と停止ができるようになりました。 – trgw Oct 21 '20 at 05:59
  • Express.js をインストールして初めてサーバを立てる場合にはこのエラーが発生すると思われます。 – trgw Oct 21 '20 at 06:34
1

考えられる原因

おそらく、起動したプロセスがバックグランドで実行されてしまったからでしょう。

対処方法

強制終了の手順をここでは示します。
まずはPORT 3000を利用しているプロセスを確認します。

lsof -i:3000

次のような表示になるかと思います。

COMMAND  PID          USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node    5298     USER_NAME   23u  IPv6 0xe3f203e22022bc12      0t0  TCP *:hbci (LISTEN)

PIDの番号をコピーし、強制終了します。

kill -9 5298

これらを行なったあと、expressを再度起動してみてください。

参考

himenon
  • 1,362
  • 1
  • 8
  • 17