[SW 코딩] Express.js와 MongoDB - 01. Express.js의 미들웨어
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는 다양한 미들웨어들이 이미 만들어져 라이브러리로 제공된다.