nodejs EADDRINUSE API拒绝访问
用nodejs寫的API突然之間不能用了,pm2命令看不到錯誤日志,于是我用node app.js運行,卻報 EADDRINUSE 錯誤。
這個錯誤的原因是 pm2運行的進程已經將這個端口占用了,E ADDR IN USE, E就是 ERROR 的意思,ADDR 是 address 的意思。
所以要先將pm2運行的服務kill,才能執行node app.js的命令.
查看端口pid (假設使用的是1234端口):
sudo netstat -nltp | grep 1234
最右邊的 26218 就是pm2進程的pid.
如果執行 kill 26218 ,pm2 又會開啟一個新的進程。所以直接將pm2停掉
執行命令:
pm2 stop all此時如果再執行sudo netstat -nltp | grep 1234,就會發現沒有返回結果了。
執行:
pm2 killPM2 Daemon Stopped。
現在可以執行node命令,查看報錯信息了。node app.js 不會再報EADDRINUSE端口被占用的錯誤。
在瀏覽器輸入api地址,顯示如下報錯信息。雖然最底下給出的報錯的信息是 TypeError啥的,但其實最根本的原因是第一行,連接到數據庫失敗。
接下來找原因,如果服務器跟數據庫都沒有問題,代碼以前訪問也沒有問題,那基本就不是我這邊的原因了,咨詢后臺同事,原來是數據庫的ip地址變了,更改為新的ip地址,并讓運維將服務器的ip加入白名單。之后就可以訪問啦。
以上就是一個用日志信息解決nodejs api拒絕訪問的問題過程記錄。
總結
以上是生活随笔為你收集整理的nodejs EADDRINUSE API拒绝访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改MAC地址的方法
- 下一篇: 在线演示(动画演示)各种算法的实现过程