23.12.19 TIL 채팅방만들기
app.use(express.static(path.join(__dirname, "public")))
이렇게 하는 이유
🚀 ~ file: app.js:8 ~ __dirname: /Users/youngwookim/Desktop/code/chat
콘솔찍으면 이렇게 나옴.
저게 지금 있는 폴더 경로 나타내줌
path.join 은 운영체제마다 슬레쉬 역슬레쉬 그게 달라서 저걸 해주는거임. ************ 알아보기
const express = require("express")
const app = express();
const path = require("path")
console.log("🚀 ~ file: app.js:8 ~ __dirname:", __dirname)
// app.use(express.static(path.join(__dirname, "public")))
const PORT = process.env.PORT || 5000;
app.listen(port, () => console.log(`server is running ${PORT}`))
// app.listen(포트, 명령)
웹 서버 열었음.
포트 이미 열렸다 오류
사용중인 포트 찾아서 강종하기
Error: listen EADDRINUSE: address already in use :::5000
VScode에서 서버를 열었을 때,
하단 패널에서 Debug console 메뉴에 이미
3000, 5000, 5001.. 등 포트를 사용하고 있어 서버 구동이 불가능하다는 메시지가 나옴
이렇듯 필요한 웹 서버 포트를 다른 곳에서 사용하고 있을 때 iterm으로 포트 정보를 찾아준다.
lsof -i:<port-number>
lsof는 list open files의 약자로 시스템에서 열린 파일의 목록을 알려주는 명령어이다.
위에서 확인한 포트 정보중 PID를 사용해 포트를 강제로 종료시킬 수 있다.
kill -g <PID>
아 왜 이러는거야
node:events:493
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use :::5000
at Server.setupListenHandle [as _listen2] (node:net:1872:16)
at listenInCluster (node:net:1920:12)
at Server.listen (node:net:2008:7)
at Function.listen (/Users/youngwookim/Desktop/code/chat/node_modules/express/lib/application.js:635:24)
at Object.<anonymous> (/Users/youngwookim/Desktop/code/chat/app.js:20:5)
at Module._compile (node:internal/modules/cjs/loader:1376:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
at Module.load (node:internal/modules/cjs/loader:1207:32)
at Module._load (node:internal/modules/cjs/loader:1023:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:135:12)
Emitted 'error' event on Server instance at:
at emitErrorNT (node:net:1899:8)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
code: 'EADDRINUSE',
errno: -48,
syscall: 'listen',
address: '::',
port: 5000
}
Node.js v21.1.0
해결이 되었다.
그냥 포트 번호 바꿈.
왜냐면 이미 내 맥에서 5000포트를 사용 하고 있었음...
지워도 계속 생겨서 어쩔 수 없음.
강의가 3년 전 것이라서 app.listen 라고 하면 라이브러리에 오류가 생기는 것 같다.