티스토리 뷰
서버 종료 후 재시작 하기
ctrl + C # 서버 종료
npm start # 서버 재시작
server를 몇 시간 동안 켜놓아 MySQL 연결이 자동 해제 된 경우, 5000번 포트가 이미 사용 중이라서 서버가 실행되지 못하는 상황
⛔ E:\dessert-recipe-server>node server.js node:events:491 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE: address already in use :::5000 at Server.setupListenHandle [as _listen2] (node:net:1740:16) at listenInCluster (node:net:1788:12) at Server.listen (node:net:1876:7) at Function.listen (E:\dessert-recipe-server\node_modules\express\lib\application.js:635:24) at Object.<anonymous> (E:\dessert-recipe-server\server.js:79:5) at Module._compile (node:internal/modules/cjs/loader:1256:14) at Module._extensions..js (node:internal/modules/cjs/loader:1310:10) at Module.load (node:internal/modules/cjs/loader:1119:32) at Module._load (node:internal/modules/cjs/loader:960:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) Emitted 'error' event on Server instance at: at emitErrorNT (node:net:1767:8) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { code: 'EADDRINUSE', errno: -4091, syscall: 'listen', address: '::', port: 5000 } Node.js v18.16.1
이어서 리액트 프로젝트를 작업하려했는데 리액트 플젝 페이지에 보였던 recipe 테이블의 데이터들이 모두 사라져있었다.
내 추측컨대 MySQL과 연결해놓은지 n시간이 지나 자동으로 연결 해제가 되어서 그런 것 같다.
그래서 서버를 Ctrl+C로 끈 후 npm start를 했는데 위 에러가 뜬 것이다.
해결방법은 총 3가지.
해결
1. 기존 프로세스 종료
netstat -ano | findstr :5000
1-2. 다음 명령을 사용해 해당 PID 프로세스를 종료한다. (예를 들어, PID가 1234라면)
taskkill /PID 1234 /F
2. 서버 포트를 변경
- server.js에서 포트를 5000 외의 다른 포트로 설정할 수 있습니다. 예를 들어, 5001 포트를 사용하고 싶다면 다음과 같이 변경한다.
const port = process.env.PORT || 5001;
3. 재시작 후 포트 확인
E:\dessert-recipe-server>npm start
'리액트로 웹 개발 A to Z' 카테고리의 다른 글
| 로컬 vs 전역 install 그게 뭔데!! (node_modules 의존성 설치 문제) (0) | 2024.11.19 |
|---|---|
| pk 고유 id는 최상위 요소에 부여해야 해 (with. key 속성) (0) | 2024.11.15 |
| server 연결도 하고, client도 npm start 해야 해! + 플젝 구조 (0) | 2024.11.12 |
| mysql에서 user는 예약어구나!! (0) | 2024.11.04 |
| 레시피 등록 이미지를 어느 경로에 저장하면 좋을까? public (0) | 2024.10.30 |