NextRequest
NextRequest étend l'API Web Request avec des méthodes supplémentaires pratiques.
cookies
Lire ou modifier l'en-tête Set-Cookie
de la requête.
set(name, value)
Étant donné un nom, définit un cookie avec la valeur donnée dans la requête.
// Pour une requête entrante /home
// Définit un cookie pour masquer la bannière
// la requête aura un en-tête `Set-Cookie:show-banner=false;path=/home`
request.cookies.set('show-banner', 'false')
get(name)
Étant donné un nom de cookie, retourne la valeur du cookie. Si le cookie n'est pas trouvé, undefined
est retourné. Si plusieurs cookies sont trouvés, le premier est retourné.
// Pour une requête entrante /home
// { name: 'show-banner', value: 'false', Path: '/home' }
request.cookies.get('show-banner')
getAll()
Étant donné un nom de cookie, retourne les valeurs du cookie. Si aucun nom n'est donné, retourne tous les cookies de la requête.
// Pour une requête entrante /home
// [
// { name: 'experiments', value: 'new-pricing-page', Path: '/home' },
// { name: 'experiments', value: 'winter-launch', Path: '/home' },
// ]
request.cookies.getAll('experiments')
// Alternative, obtenir tous les cookies de la requête
request.cookies.getAll()
delete(name)
Étant donné un nom de cookie, supprime le cookie de la requête.
// Retourne true si supprimé, false si rien n'est supprimé
request.cookies.delete('experiments')
has(name)
Étant donné un nom de cookie, retourne true
si le cookie existe dans la requête.
// Retourne true si le cookie existe, false sinon
request.cookies.has('experiments')
clear()
Supprime l'en-tête Set-Cookie
de la requête.
request.cookies.clear()
nextUrl
Étend l'API native URL
avec des méthodes pratiques supplémentaires, incluant des propriétés spécifiques à Next.js.
// Pour une requête vers /home, pathname est /home
request.nextUrl.pathname
// Pour une requête vers /home?name=lee, searchParams est { 'name': 'lee' }
request.nextUrl.searchParams
Les options suivantes sont disponibles :
Propriété | Type | Description |
---|---|---|
basePath | string | Le chemin de base de l'URL. |
buildId | string | undefined | L'identifiant de build de l'application Next.js. Peut être personnalisé. |
defaultLocale | string | undefined | La locale par défaut pour l'internationalisation. |
domainLocale | ||
- defaultLocale | string | La locale par défaut dans un domaine. |
- domain | string | Le domaine associé à une locale spécifique. |
- http | boolean | undefined | Indique si le domaine utilise HTTP. |
locales | string[] | undefined | Un tableau des locales disponibles. |
locale | string | undefined | La locale actuellement active. |
url | URL | L'objet URL. |
ip
La propriété ip
est une chaîne contenant l'adresse IP de la requête. Cette valeur peut être fournie optionnellement par votre plateforme d'hébergement.
Bon à savoir : Sur Vercel, cette valeur est fournie par défaut. Sur d'autres plateformes, vous pouvez utiliser l'en-tête
X-Forwarded-For
pour fournir l'adresse IP.
// Fourni par Vercel
request.ip
// Auto-hébergement
request.headers.get('X-Forwarded-For')
geo
La propriété geo
est un objet contenant les informations géographiques de la requête. Cette valeur peut être fournie optionnellement par votre plateforme d'hébergement.
Bon à savoir : Sur Vercel, cette valeur est fournie par défaut. Sur d'autres plateformes, vous pouvez utiliser l'en-tête
X-Forwarded-For
pour fournir l'adresse IP, puis utiliser un service tiers pour obtenir les informations géographiques.
// Fourni par Vercel
request.geo.city
request.geo.country
request.geo.region
request.geo.latitude
request.geo.longitude
// Auto-hébergement
function getGeo(request) {
let ip = request.headers.get('X-Forwarded-For')
// Utiliser un service tiers pour obtenir les informations géographiques
}