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()' 를 호출할 때만 다음 미들웨어나 라우터로 넘어간.

   그렇지 않으면 맨 처음에 선언된 미들웨어가 제일 먼저 실행된다.

 

 

반응형