본문 바로가기
Back-End/node.js

Node.js Middleware의 개념 및 실행 순서

by blackjack_96 2022. 3. 1.

Node.js Middleware의 개념 및 실행 순서

# 본 강의는 egoing님의 생활코딩 강의를 정리한 것입니다.

 

express모듈을 사용한 node.js 웹 서버 프로그래밍에서

Middleware라는 중요한 개념이 등장한다.

 

1. Middleware의 개념

먼저 다음 코드를 보자

app.get('/',function(request,response){
	response.send("Hello World!");
});

 

"/ 라는 주소로 요청이 들어오면

2번째 인자로 전달된 함수를 실행하라"라고 프로그래밍 하였다.

 

 

2번째 인자로 전달된 함수와 같은 형태를 Middleware라고 한다.

우리는 특정 상황에서

Application이 어떠한 방식으로 동작하기를 원한다.

그리고 그 동작을 함수로 정의한다.

이것이 바로 middleware이다.

 

 

2. 활용 예시

app.use(bodyParser.urlencoded({ extended: false }));
// 1. post메소드를 처리하는 용도로 사용되는 body-parser라는 middleware를 사용하는 방법

app.use(compression());
// 2. 서버가 클라이언트로 Response를 전달할 때 압축해서 전달시키기 위해 사용되는 middleware

app.get('*', (request, response, next) => {
    db.query('SELECT * FROM topic',function(err,topics){
        request.topics = topics;
        console.log(topics);
        next();
    });
});
//  3. GET method request로 오는 모든 경우에 호출되는 middleware

app.get('/',topic.home);
//  4. Document Root로 GET method request가 오는 경우 호출되는 middleware

 

특히 3,4와 같은 형식의 middleware를 application-level middleware라고 한다.

 

만약 client가 GET Method로 웹서버의 /로 HTTP Request를 보냈을 시,

middleware는 위 코드의

1 > 2 > 3 > 4 순서대로 실행이 된다.