본문 바로가기

Web/Node.JS

[패스트캠퍼스 챌린지 25일차] Express - Middleware

Fast campus Logo

 

Fastcampus_Node.js 수강 목록

 

패스트캠퍼스 작심 30일 챌린지 25일차.

 


 

Express - 미들웨어 개념 학습

 

오늘은 Express의 미들웨어 개념에 대해 학습하였다.

미들웨어하면 일반적인 컴퓨터보다 조금 더 큰 컴퓨터를 생각했는데,

Express에서의 미들웨어는 다른 개념이다.

 

Express가 실행되면 사용자가 서버로 접근하면서 request를 전달하는데,

이때 request가 응답으로 반환되기 전까지 데이터 처리를 위해 거치는 모든 함수 하나 하나를 미들웨어라고 한다.

 

단 request가 거치는 함수들 사이의 연관성이 없으면 미들웨어는 의미가 없다.

그러므로 함수끼리 데이터를 전달하며 데이터를 처리하게 되는데

이처럼 앞의 미들웨어가 처리한 데이터를 뒤의 미들웨어로 전달하여

서로 연관된 기능을 하는 함수들을 미들웨어라고 한다.

 

그럼 이전 Express 개념에서 작성한 소스코드를 활용해 간략한 예제코드를 작성하여

미들웨어끼리 어떻게 데이터를 주고받는지 알아보자.

 

// First-Middleware
app.use('/', (req, res, next) => {
    const today = new Date();
    log('This is First-Middleware');
    req.today = today;
    next()
});

// Second-Middleware
app.use('/', (req, res) => {
    log('This is Second-Middleware');
    log('Today is', req.today);
});

 

소스코드를 통해 알 수 있듯이 위에 있는 서버에 접속하면 First-Middleware가 실행되고,

그 다음 Second-Middleware가 실행될 것을 예상할 수 있다.

 

그런데 만약 First-Middleware의 next()가 없으면 Second-Middleware가 실행이 될까?

답은 No!

next()가 '현재 Middleware의 작업이 다 끝났으니 다음 Middleware에게 실행을 넘기는 역할'을 해준다.

 

그럼 Second-Middleware가 First-Middleware 앞으로 가면?

이때는 Second-Middleware에 next()가 없기 때문에 Second-Middleware만 실행된다.

즉, 위에서 아래로 순차적으로 함수가 실행이 된다는 것을 알 수 있다.

 

사용자 요청을 프로세스에 맞게 순차적으로 처리해야할 경우 Middleware의 기능을 활용하여 소스코드를 작성하자.

 


 

[오늘의 학습통계]

패스트캠퍼스 작심 30일 챌린지 25일차 학습통계

 


- 패스트캠퍼스 URL : https://bit.ly/37BpXiC

* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.