Next.js에서 정의하는 미들웨어란 페이지를 렌더링하기 위해 서버 측에서 실행되는 함수입니다. 특정 요청 전에 무언가를 수행할 수 있게 해주는 기능입니다.
미들웨어에서는 Request 객체와 Response 객체에 접근할 수 있으며 이를 활용해 요청 정보를 받아와 부가적인 처리를 하고 응답 객체에 무언가를 추가하거나 응답을 변경할 수 있습니다.
미들웨어를 언제 사용해야 할까?
페이지 렌더링 전에 인증을 확인하거나 요청을 확인할 때
요청 데이터를 사전에 처리하거나 특정 API 요청을 수행할 때 캐시를 관리할 수 있다.
요청에 대한 응답을 변환하거나 에러를 처리할 수 있습니다.
// middleware.ts
import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'
// This function can be marked `async` if using `await` inside
export function middleware(request: NextRequest) {
return NextResponse.redirect(new URL('/about-2', request.url))
}
// See "Matching Paths" below to learn more
export const config = {
matcher: '/about/:path*',
}