ama
ama copied to clipboard
Error: listen EADDRINUSE -- port 被使用中且無法關閉
感謝使用 Node.js Taiwan AMA,以下附上簡單提問範例供參考,請把內容改成你自己遇到的問題
結果
已解決...也不算完全解決 過一段時間不知道為什麼就自己關閉了...
目的
<<遇到 Error: listen EADDRINUSE 問題且嘗試取得此連線的pid 卻無法關閉>>
使用的工具
<<我在 win7 下使用cmder(Linux環境) 使用 npm 安裝 node.js v6.9.5 >>
遇到的問題
<<
寫了一個簡單的express 來啟動server ,想改變其中某些程式碼 , 在啟動一次的時候卻無法使用,顯示Error: listen EADDRINUSE :::8000 意思是8000 port 已經在使用中... 且找不到方法關閉
嘗試過的解法
<< 使用 netstat ano 來顯示正在監聽的port 發現 8000 port 正在被執行且 pid 為 7300。 TCP [::]:8000 [::]:0 LISTENING 7300
(搜尋的過程有發現其他如 lsof 跟fuser 指令 也可以用來查找有哪些port 正在使用中 但似乎要osx 才能使用? cmder好像沒有支援)
使用 kill -9 7300 kill-15 7300 刪除process卻都沒反應
程式碼
下面附上我的程式碼以及我遇到的錯誤
程式碼
var express = require('express');
var app = express();
var port = 8000;
app.set('view engine', 'ejs');
var router = require('./routes')(app);
app.use(express.static(__dirname + '/public'));/* 將預設路徑設在public*/
app.listen(port,() => console.log(`listening on ${port}`));
錯誤
Error: listen EADDRINUSE :::8000
at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at Server._listen2 (net.js:1259:14)
at listen (net.js:1295:10)
at Server.listen (net.js:1391:5)
at Object.<anonymous> (C:\Users\chcg\Desktop\程式\class\12.Express,Koa\Express\test1.js:18:4)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)