NextRequest

NextRequest расширяет Web Request API дополнительными удобными методами.

cookies

Чтение или изменение заголовка Set-Cookie запроса.

set(name, value)

Устанавливает cookie с заданным именем и значением в запросе.

// Для входящего запроса /home
// Установка cookie для скрытия баннера
// запрос будет содержать заголовок `Set-Cookie:show-banner=false;path=/home`
request.cookies.set('show-banner', 'false')

get(name)

Возвращает значение cookie по имени. Если cookie не найдена, возвращается undefined. Если найдено несколько cookie, возвращается первая.

// Для входящего запроса /home
// { name: 'show-banner', value: 'false', Path: '/home' }
request.cookies.get('show-banner')

getAll()

Возвращает значения cookie по имени. Если имя не указано, возвращает все cookie запроса.

// Для входящего запроса /home
// [
//   { name: 'experiments', value: 'new-pricing-page', Path: '/home' },
//   { name: 'experiments', value: 'winter-launch', Path: '/home' },
// ]
request.cookies.getAll('experiments')
// Альтернативно, получить все cookie запроса
request.cookies.getAll()

delete(name)

Удаляет cookie с указанным именем из запроса.

// Возвращает true при успешном удалении, false если ничего не удалено
request.cookies.delete('experiments')

has(name)

Возвращает true, если cookie с указанным именем существует в запросе.

// Возвращает true если cookie существует, false если нет
request.cookies.has('experiments')

clear()

Удаляет заголовок Set-Cookie из запроса.

request.cookies.clear()

nextUrl

Расширяет нативный URL API дополнительными удобными методами, включая свойства, специфичные для Next.js.

// Для запроса к /home, pathname будет /home
request.nextUrl.pathname
// Для запроса к /home?name=lee, searchParams будет { 'name': 'lee' }
request.nextUrl.searchParams

Доступны следующие свойства:

СвойствоТипОписание
basePathstringБазовый путь URL.
buildIdstring | undefinedИдентификатор сборки приложения Next.js. Можно настроить.
defaultLocalestring | undefinedЛокаль по умолчанию для интернационализации.
domainLocale
- defaultLocalestringЛокаль по умолчанию в домене.
- domainstringДомен, связанный с конкретной локалью.
- httpboolean | undefinedУказывает, использует ли домен HTTP.
localesstring[] | undefinedМассив доступных локалей.
localestring | undefinedТекущая активная локаль.
urlURLОбъект URL.

ip

Свойство ip содержит строку с IP-адресом запроса. Это значение может быть предоставлено вашей хостинговой платформой.

Полезно знать: На Vercel это значение предоставляется по умолчанию. На других платформах вы можете использовать заголовок X-Forwarded-For для указания IP-адреса.

// Предоставляется Vercel
request.ip
// Самостоятельный хостинг
request.headers.get('X-Forwarded-For')

geo

Свойство geo содержит объект с географической информацией о запросе. Это значение может быть предоставлено вашей хостинговой платформой.

Полезно знать: На Vercel это значение предоставляется по умолчанию. На других платформах вы можете использовать заголовок X-Forwarded-For для получения IP-адреса, а затем воспользоваться сторонним сервисом для определения географической информации.

// Предоставляется Vercel
request.geo.city
request.geo.country
request.geo.region
request.geo.latitude
request.geo.longitude

// Самостоятельный хостинг
function getGeo(request) {
  let ip = request.headers.get('X-Forwarded-For')
  // Использовать сторонний сервис для определения географической информации
}