NextRequest
NextRequest erweitert die Web Request API mit zusätzlichen praktischen Methoden.
cookies
Liest oder verändert den Set-Cookie
-Header der Anfrage.
set(name, value)
Setzt ein Cookie mit dem angegebenen Namen und Wert in der Anfrage.
// Bei eingehender Anfrage /home
// Setzt ein Cookie, um das Banner auszublenden
// Die Anfrage erhält einen `Set-Cookie:show-banner=false;path=/home`-Header
request.cookies.set('show-banner', 'false')
get(name)
Gibt den Wert des Cookies mit dem angegebenen Namen zurück. Wenn das Cookie nicht gefunden wird, wird undefined
zurückgegeben. Wenn mehrere Cookies gefunden werden, wird der erste zurückgegeben.
// Bei eingehender Anfrage /home
// { name: 'show-banner', value: 'false', Path: '/home' }
request.cookies.get('show-banner')
getAll()
Gibt die Werte des Cookies mit dem angegebenen Namen zurück. Wenn kein Name angegeben wird, werden alle Cookies der Anfrage zurückgegeben.
// Bei eingehender Anfrage /home
// [
// { name: 'experiments', value: 'new-pricing-page', Path: '/home' },
// { name: 'experiments', value: 'winter-launch', Path: '/home' },
// ]
request.cookies.getAll('experiments')
// Alternativ alle Cookies der Anfrage abrufen
request.cookies.getAll()
delete(name)
Löscht das Cookie mit dem angegebenen Namen aus der Anfrage.
// Gibt true zurück, wenn gelöscht, false wenn nichts gelöscht wurde
request.cookies.delete('experiments')
has(name)
Gibt true
zurück, wenn das Cookie mit dem angegebenen Namen in der Anfrage existiert.
// Gibt true zurück, wenn das Cookie existiert, false wenn nicht
request.cookies.has('experiments')
clear()
Entfernt den Set-Cookie
-Header aus der Anfrage.
request.cookies.clear()
nextUrl
Erweitert die native URL
-API mit zusätzlichen praktischen Methoden, einschließlich Next.js-spezifischer Eigenschaften.
// Bei einer Anfrage an /home ist pathname /home
request.nextUrl.pathname
// Bei einer Anfrage an /home?name=lee sind searchParams { 'name': 'lee' }
request.nextUrl.searchParams
Folgende Optionen sind verfügbar:
Eigenschaft | Typ | Beschreibung |
---|---|---|
basePath | string | Der Basis-Pfad der URL. |
buildId | string | undefined | Die Build-Kennung der Next.js-Anwendung. Kann angepasst werden. |
defaultLocale | string | undefined | Die Standard-Sprache für Internationalisierung. |
domainLocale | ||
- defaultLocale | string | Die Standard-Sprache innerhalb einer Domain. |
- domain | string | Die Domain, die mit einer bestimmten Sprache verknüpft ist. |
- http | boolean | undefined | Gibt an, ob die Domain HTTP verwendet. |
locales | string[] | undefined | Ein Array verfügbarer Sprachen. |
locale | string | undefined | Die aktuell aktive Sprache. |
url | URL | Das URL-Objekt. |
ip
Die ip
-Eigenschaft ist ein String, der die IP-Adresse der Anfrage enthält. Dieser Wert kann optional von Ihrer Hosting-Plattform bereitgestellt werden.
Gut zu wissen: Auf Vercel wird dieser Wert standardmäßig bereitgestellt. Auf anderen Plattformen können Sie den
X-Forwarded-For
-Header verwenden, um die IP-Adresse anzugeben.
// Bereitgestellt von Vercel
request.ip
// Eigenes Hosting
request.headers.get('X-Forwarded-For')
geo
Die geo
-Eigenschaft ist ein Objekt, das geografische Informationen der Anfrage enthält. Dieser Wert kann optional von Ihrer Hosting-Plattform bereitgestellt werden.
Gut zu wissen: Auf Vercel wird dieser Wert standardmäßig bereitgestellt. Auf anderen Plattformen können Sie den
X-Forwarded-For
-Header verwenden, um die IP-Adresse anzugeben, und dann einen Drittanbieterdienst nutzen, um die geografischen Informationen abzurufen.
// Bereitgestellt von Vercel
request.geo.city
request.geo.country
request.geo.region
request.geo.latitude
request.geo.longitude
// Eigenes Hosting
function getGeo(request) {
let ip = request.headers.get('X-Forwarded-For')
// Drittanbieterdienst zur Abfrage der geografischen Informationen verwenden
}