다음 명령을 사용하여 expressjs 응용 프로그램을 만들었습니다.
express -e folderName
npm install ejs --save
npm install
와 함께 응용 프로그램을 실행할 때 node app.js
다음 오류가 발생합니다.
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:884:11)
at Server._listen2 (net.js:1022:14)
at listen (net.js:1044:10)
at Server.listen (net.js:1110:5)
at Object.<anonymous> (folderName/app.js:33:24)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
고치는 방법?
답변
다른 서버를 실행하여 8080과 같은 포트를 사용했습니다.
node app
다른 쉘에서 실행했을 수도 있습니다 . 닫고 다시 실행하십시오.
포트 번호를 확인할 수 있습니다. 사용 가능 여부
netstat -tulnp | grep <port no>
또는 lsof 를 사용할 수 있습니다 .
lsof -i :<port no>
답변
익스프레스 앱을 실행하면 비슷한 오류가 발생합니다. 이 경우에도 똑같이 따라야합니다. 터미널에서 실행 중인지 확인해야합니다. 프로세스를 찾아서 종료하려면 다음 단계를 수행하십시오.
- PS AUX | 그렙 노드
- 프로세스 ID를 찾으십시오 (왼쪽에서 두 번째).
- -9 PRCOCESS_ID 죽이기
또는
단일 명령을 사용하여 실행중인 모든 노드 프로세스를 닫으십시오.
ps aux | awk '/node/{print $2}' | xargs kill -9
답변
인스턴스가 여전히 실행 중일 수 있습니다. 문제가 해결됩니다.
killall node
업데이트 :이 명령은 Linux / Ubuntu 및 Mac에서만 작동합니다.
답변
Linux를 사용하는 경우 Nodejs가 루트로 실행되지 않는 경우에도이 문제가 발생할 수 있습니다.
이것에서 변경 :
nodejs /path/to/script.js
이에:
sudo nodejs /path/to/script.js
방금 나에게 일어 났으며 여기에 다른 제안은 없습니다. 운 좋게도 루트로 실행할 때 스크립트가 다른 날에 작동하고 있음을 기억했습니다. 이것이 누군가를 돕기를 바랍니다!
면책 조항 : 이것은 아마도 프로덕션 환경에 가장 적합한 솔루션은 아닙니다. 루트로 서비스를 시작하면 서버 / 애플리케이션에 보안 허점이 생길 수 있습니다. 제 경우에는 로컬 서비스를위한 솔루션 이었지만 다른 사람들이 원인을 찾아 내기 위해 더 많은 시간을 보내도록 권장하고 있습니다.
답변
스크립트를 실행하는 데 사용중인 포트가 이미 사용 중이기 때문입니다. 해당 게시물을 사용하는 다른 모든 노드를 중지해야합니다. 이를 위해 다음을 통해 모든 노드를 확인할 수 있습니다
ps -e
또는 노드 프로세스의 경우에만 사용 ps -ef | grep node
ID가있는 모든 노드 프로세스의 목록을 제공합니다
모든 노드 프로세스를 종료하려면
sudo killall -9 node
또는 특정 ID sudo kill -9 id
답변
포트를 변경하여 버그를 수정했습니다.
app.set('port', process.env.PORT || 3000);<br>
다음으로 변경되었습니다.
app.set('port', process.env.PORT || 8080);<br>
답변
사용하려는 포트 노드가 다른 프로그램에서 이미 사용될 수 있습니다. 내 경우 에는 최근에 설치 한 ntop 입니다. 그것을 깨닫기 위해 브라우저에서 http : // localhost : 3000 / 을 열어야 했습니다. 프로세스를 찾는 또 다른 방법은 여기에 있습니다 .