Node.jsにてhttpサーバー起動時に発生したエラー
vagrant@ubuntu-bionic:~/workspace/intro-curriculum-3011$ node index.js
events.js:167
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::8000
at Server.setupListenHandle [as _listen2] (net.js:1290:14)
at listenInCluster (net.js:1338:12)
at Server.listen (net.js:1425:7)
at Object. (/home/vagrant/workspace/intro-curriculum-3011/index.js:13:8)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
Emitted 'error' event at:
at emitErrorNT (net.js:1317:8)
at process._tickCallback (internal/process/next_tick.js:63:19)
at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)
at startup (internal/bootstrap/node.js:282:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
要は「当該ポート(8000)は既に使用中だから使えない」というエラー。
上記のコマンド(“node index.js”)を実行する前にも同じコマンドを実行しており、そのときのプロセスが生き残っていることが原因なので起動中のプロセスをkillする。
起動中の”node index.js”をkill
// 起動中のプロセスを確認
$ vagrant@ubuntu-bionic:~/workspace/intro-curriculum-3011$ ps aux | grep node
vagrant 4528 0.0 3.1 561376 31868 pts/1 Sl+ 21:22 0:00 node index.js
vagrant 6842 0.0 0.1 14164 1088 pts/0 S+ 21:56 0:00 grep --color=auto node
// killでプロセスを終了させる
// うまく終了しないときは"kill -s 9 プロセスID"
vagrant@ubuntu-bionic:~/workspace/intro-curriculum-3011$ kill 4528
// きちんと終了したかどうかをチェック
vagrant@ubuntu-bionic:~/workspace/intro-curriculum-3011$ ps aux | grep node
vagrant 6861 0.0 0.1 14164 1056 pts/0 S+ 21:59 0:00 grep --color=auto node
この後、再度httpサーバーを起動すればOK。
Node.jsでhttpサーバーを起動
vagrant@ubuntu-bionic:~/workspace/intro-curriculum-3011$ node index.js
Listening on 8000