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éTypeDescription
basePathstringLe chemin de base de l'URL.
buildIdstring | undefinedL'identifiant de build de l'application Next.js. Peut être personnalisé.
pathnamestringLe chemin de l'URL.
searchParamsObjectLes 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
}