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é. |
pathname | string | Le chemin de l'URL. |
searchParams | Object | Les paramètres de recherche de l'URL. |
Note : Les propriétés d'internationalisation du routeur Pages ne sont pas disponibles pour une utilisation dans le routeur App. Apprenez-en plus sur l'internationalisation avec le routeur App.
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
}