2022 AI SW 온라인 교육/SW 코딩 훈련트랙

[SW 코딩] Express.js와 MongoDB - 01. Express.js의 미들웨어

parkes811 2022. 12. 6. 22:23

01 Express.js의 Middleware

 

  • Middleware란?

- 미들웨어는 Express.js 동작의 핵심으로 HTTP 요청과 응답 사이에 단계별 동작을 수행해주는 함수이다.

 

 

  • Middleware의 동작원리

 

02 Middleware의 작성과 사용

 

  • Middleware의 작성법

- req : request

- res : result

 

  • Route Handler와 Middleware

 

  • Middleware의 작성 예시

- middleware가 되기 위해 logger(), auth() 함수는 req, res, next 인자를 갖는다.

- middleware는 적용되는 위치에 따라서 어플리케이션 미들웨어, 라우터 미들웨어, 오류처리 미들웨어로 분류한다.

- 또한, 필요한 동작 방식에 따라 미들웨어를 적용할 위치를 결정한다.

 

  • Middleware 사용법 - 어플리케이션 미들웨어 

 

  • Middleware 사용법 - 라우터 미들웨어 

- 어플리케이션 미들웨어와는 다르게 app 객체에 라우터가 적요된 이후 순서대로 동작하기 때문에 app.use()가 먼저 실행된다.

 

  • Middleware 사용법 - 미들웨어 서브 스택

 

  • Middleware 사용법 - 오류처리 미들웨어

- 1번 내용이 오류처리 미들웨어를 실행시키는 구문이다.

- 오류처리 미들웨어는 일반적으로 가장 마지막에 위치하는 미들웨어이다. -> 함수가 실행되야 오류가 발생했는지 알 수 있기 때문이다.

- 다른 미들웨어들과 달리 err, req, res, next 이 네 가지 인자를 가지며, 앞선 미들웨어에서 next 함수에 인자가 전달되면 실행된다.

 

  • Middleware 사용법 - 함수형 미들웨어

- 하나의 미들웨어를 작성하고, 작동 모드를 선택하면서 사용하고 싶을 경우에 사용한다.

- 미들웨어를 함수형으로 작성하여 사용할 수 있다.

ex) API 별로 사용자의 권한을 다르게 제한하고 싶은 경우

- return() 안 내용이 함수를 반환한다.

- Middleware Libraries : Express.js는 다양한 미들웨어들이 이미 만들어져 라이브러리로 제공된다.