NextRequest는 Web Request API를 확장하여 추가적인 편의 메서드를 제공한다.
cookies요청의 Set-Cookie 헤더를 읽거나 수정한다.
set(name, value) — 이름과 값을 지정해 요청에 쿠키를 설정한다.
// 요청 경로: /home
// request에 `Set-Cookie: show-banner=false; path=/home` 헤더가 추가된다.
request.cookies.set('show-banner', 'false')
get(name) — 쿠키 이름으로 값을 반환한다. 쿠키가 없으면 undefined를 반환하고, 동일한 이름의 쿠키가 여러 개이면 첫 번째 값을 반환한다.
// 요청 경로: /home
// { name: 'show-banner', value: 'false', Path: '/home' }
request.cookies.get('show-banner')
getAll() — 이름을 지정하면 해당 쿠키의 모든 값을 반환한다. 이름을 생략하면 요청의 모든 쿠키를 반환한다.
// 요청 경로: /home
// [
// { name: 'experiments', value: 'new-pricing-page', Path: '/home' },
// { name: 'experiments', value: 'winter-launch', Path: '/home' },
// ]
request.cookies.getAll('experiments')
// 요청의 모든 쿠키를 가져올 수도 있다.
request.cookies.getAll()
delete(name) — 이름으로 지정한 쿠키를 요청에서 삭제한다.
// 삭제되면 true, 삭제할 쿠키가 없으면 false를 반환한다.
request.cookies.delete('experiments')
has(name) — 지정한 이름의 쿠키가 요청에 존재하면 true를 반환한다.
// 쿠키가 존재하면 true, 없으면 false를 반환한다.
request.cookies.has('experiments')
clear() — 요청의 모든 쿠키를 제거한다.
request.cookies.clear()
nextUrl기본 URL API를 확장하며, Next.js 전용 속성을 포함한 추가 편의 메서드를 제공한다.
// 요청 경로가 /home이면 pathname은 /home
request.nextUrl.pathname
// 요청 경로가 /home?name=lee이면 searchParams는 { 'name': 'lee' }
request.nextUrl.searchParams
사용 가능한 속성은 다음과 같다.
| 속성 | 타입 | 설명 |
|---|---|---|
basePath | string | URL의 베이스 경로 |
buildId | string \| undefined | Next.js 애플리케이션의 빌드 식별자. 커스터마이징 가능 |
pathname | string | URL의 경로(pathname) |
searchParams | Object | URL의 쿼리 파라미터 |
Pages Router의 국제화(i18n) 관련 속성은 App Router에서 사용할 수 없다.