IT/Node.js
[무작정 기록] Node.js 모듈 그리고 미들웨어
Alo_alex
2025. 5. 30. 18:47
Node.js는?
자바스크립트로 서버 개발이 가능
이전엔 자바스크립트는 브라우저에서만 실행되던 언어 였음
모듈
모듈종류 | cmd 명령어 |
내부모듈(Core/Internal module) | -- 내부모듈이기 때문에 설치할 필요 없음 -- 실행할때 node 모듈명.js |
외부모듈(External module) | -- 설치할때 npm install 모듈명 -- 실행할때 (내부 모듈 실행법과 동일) |
사용자 정의 모듈 | -- 내부모듈과 동일, 따로 설치할 필요 없으며 실행할때만 구문 입력하는 정도! |
미들웨어(MiddleWare)
요청(Request)과 응답(Response) 사이에서 중간에서 요청을 가로채고 처리할 수 있는 함수
즉, 클라이언트가 서버에 요청을 보낼 때 서버가 응답을 돌려주기 전에 미들웨어가 중간에서 가로채서 뭔가를 할 수 있는 구조
결론! 미리 만들어 둔 "공통 기능" 을 현재 서버의 요청처리 흐름에 끼워 넣을 때 사용하는 중간 처리 함수이며,
일종의 콜백함수일 수 있다.
사용자 요청 → 미들웨어1 -(next 호출시 다음 미들웨어로 이동)→ 미들웨어2 → 라우터핸들러 → 응답
※ 일반 미들웨어 형식 (Express 기준)
(req, res, next) => { ... }
→ app.use((req, res, next) => { ... });
※ 에러 처리 미들웨어 형식 (Express 기준)
(err, req, res, next) => { ... }
→ app.use((err, req, res, next) => { ... });
※ Static 미들웨어 형식 (Express 기준) : 정적 파일들을 서버가 자동으로 찾아서 응답해주는 내장 미들웨어
express.static()
→ app.use(express.static( 'public' ));
※ 라우터 미들웨어 : 사용자의 요청에 따라 필요한 정보를 제공하는 것을 '라우트' 라고 한다.
app.method(path, [미들웨어1, 미들웨어2, ...], 핸들러);
→ const checkLogin = (req, res, next) => { ... }
! 미들웨어는 여러개가 선언되어 있으면, 순서대로 실행하며 'next()' 를 호출할 때만 다음 미들웨어나 라우터로 넘어간.
그렇지 않으면 맨 처음에 선언된 미들웨어가 제일 먼저 실행된다.
반응형