Node.js/Node.js Doc

[Node.js - Express] 미들웨어(Middelware)란?

장일규 2022. 5. 8. 22:18

미들웨어란?

애플리케이션의 요청(req)-응답(res) 주기 중 그 다음 미들웨어 함수에 대한 액세스 권한을 갖는 함수입니다.

그 다음의 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시됩니다.

클라이언트가 reqeust를 보내고, 서버에서 받은 요청에대한 response를 하는 과정에서 중간(Middle)에서 개발자가 간섭하여 로직을 생성하거나 흐름을 제어하여 실행 할 수 있다는 것이다.

미들웨어(Middleware) 종류

  • Application-level 어플리케이션 수준
  • Router-level 라우터 수준
  • Error-handling 오류 처리
  • Built-in 내장
  • Third-Party 제3자

미들웨어 함수는 다음과 같은 태스크를 수행할 수 있다.

  • 모든 코드를 실행
  • 요청 및 응답 오브젝트에 대한 변경을 실행
  • 요청-응답 주기를 종료
  • 요청(req)-응답(res)에 흐름을 제어할 수 있다.
if (request.method ==== 'GET') {

             return; 

} else {

   next();

}
  • 스택 내의 그다음 미들웨어 함수를 호출
        const express = require('express');

        const app = express();

express모듈을 가져와서 함수를 실행 함으로써 Application Object에는 use() 메서드가 존재하게 된다.

use()함수를 이용하여 미들웨어를 등록하고, 등록된 순서대로 실행한다.

문서에는 스택이라고 표현했는데 자료구조에 LIFO구조는 아닌 것 같습니다.

Middleware함수 등록

app.use(bodyParser.json());

app.use(bodyParser.urlencoded({extended: true}));

app.use('/', homeRouter);

Middleware 실행