더북(TheBook)

21.3.2 미들웨어

Koa 애플리케이션은 미들웨어의 배열로 구성되어 있습니다. 조금 전 코드에서 app.use 함수를 사용했지요? 이 함수는 미들웨어 함수를 애플리케이션에 등록합니다.

미들웨어 함수는 다음과 같은 구조로 이루어져 있습니다.

(ctx, next) => {
}

Koa의 미들웨어 함수는 두 개의 파라미터를 받습니다. 첫 번째 파라미터는 조금 전에도 사용한 ctx라는 값이고, 두 번째 파라미터는 next입니다.

ctx는 Context의 줄임말로 웹 요청과 응답에 관한 정보를 지니고 있습니다. next는 현재 처리 중인 미들웨어의 다음 미들웨어를 호출하는 함수입니다. 미들웨어를 등록하고 next 함수를 호출하지 않으면, 그다음 미들웨어를 처리하지 않습니다.

만약 미들웨어에서 next를 사용하지 않으면 ctx => {}와 같은 형태로 파라미터에 next를 설정하지 않아도 괜찮습니다. 주로 다음 미들웨어를 처리할 필요가 없는 라우트 미들웨어를 나중에 설정할 때 이러한 구조로 next를 생략하여 미들웨어를 작성합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.