Skip to main content

Middleware

info

Node.js를 기반으로 설명한다.

미들웨어란, RequestResponse 객체에 접근할 수 있는 함수 혹은 클래스로, Express.js 에서는 next라고 하는 함수와 함께 사용된다. Express.js 자체가 미들웨어와 라우터를 기반으로 한 프레임워크이기도하다.


Middleware 종류

미들웨어는 다음의 종류로 나뉜다.

  • Application-level Middleware
    • app.use('/', (req, res, next) => next())
    • app.get('/', (req, res, next) => next())
    • ...
  • Router-level Middleware
    • router.use('/', (req, res, next) => next())
    • router.get('/', (req, res, next) => next())
    • ...
  • Error-handling Middleware
    • app.use('/', (error, req, res, next) => next(error))
  • Built-in Middleware
    • express.json()
    • express.static()
    • express.urlencoded()
    • ...
  • Third-party Middleware
    • app.use(cookieParser())
    • ...

Middleware 특징

미들웨어는 선언한 순서대로 실행된다는 특징이 있다. 예를 들어, 예외 처리를 제외한 미들웨어의 경우, next() 함수 호출을 통해 다음 미들웨어가 실행된다. 만약 미들웨어가 next() 함수를 호출하지 않을 경우, 요청은 다음 미들웨어로 넘어가지 않고 대기상태에 있게 된다. (별도의 종료 응답이 없는 한, 요청이 종료되지 않는다.)

그리고 Router-level Middleware의 경우, 해당 경로에 대한 요청이 있을 때에만 실행이 된다.

Related Links