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