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:

EigenschaftTypBeschreibung
basePathstringDer Basis-Pfad der URL.
buildIdstring | undefinedDie Build-Kennung der Next.js-Anwendung. Kann angepasst werden.
defaultLocalestring | undefinedDie Standard-Sprache für Internationalisierung.
domainLocale
- defaultLocalestringDie Standard-Sprache innerhalb einer Domain.
- domainstringDie Domain, die mit einer bestimmten Sprache verknüpft ist.
- httpboolean | undefinedGibt an, ob die Domain HTTP verwendet.
localesstring[] | undefinedEin Array verfügbarer Sprachen.
localestring | undefinedDie aktuell aktive Sprache.
urlURLDas 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
}