NextRequest
NextRequest extiende la API de Request de Web con métodos adicionales de conveniencia.
cookies
Lee o modifica el encabezado Set-Cookie
de la solicitud.
set(name, value)
Dado un nombre, establece una cookie con el valor proporcionado en la solicitud.
// Dada una solicitud entrante /home
// Establece una cookie para ocultar el banner
// la solicitud tendrá un encabezado `Set-Cookie:show-banner=false;path=/home`
request.cookies.set('show-banner', 'false')
get(name)
Dado un nombre de cookie, devuelve su valor. Si no se encuentra la cookie, devuelve undefined
. Si hay múltiples cookies, devuelve la primera.
// Dada una solicitud entrante /home
// { name: 'show-banner', value: 'false', Path: '/home' }
request.cookies.get('show-banner')
getAll()
Dado un nombre de cookie, devuelve sus valores. Si no se proporciona nombre, devuelve todas las cookies de la solicitud.
// Dada una solicitud entrante /home
// [
// { name: 'experiments', value: 'new-pricing-page', Path: '/home' },
// { name: 'experiments', value: 'winter-launch', Path: '/home' },
// ]
request.cookies.getAll('experiments')
// Alternativamente, obtiene todas las cookies de la solicitud
request.cookies.getAll()
delete(name)
Dado un nombre de cookie, elimina la cookie de la solicitud.
// Devuelve true si se eliminó, false si no se eliminó nada
request.cookies.delete('experiments')
has(name)
Dado un nombre de cookie, devuelve true
si existe en la solicitud.
// Devuelve true si la cookie existe, false si no
request.cookies.has('experiments')
clear()
Elimina el encabezado Set-Cookie
de la solicitud.
request.cookies.clear()
nextUrl
Extiende la API nativa de URL
con métodos adicionales de conveniencia, incluyendo propiedades específicas de Next.js.
// Dada una solicitud a /home, pathname es /home
request.nextUrl.pathname
// Dada una solicitud a /home?name=lee, searchParams es { 'name': 'lee' }
request.nextUrl.searchParams
Las siguientes opciones están disponibles:
Propiedad | Tipo | Descripción |
---|---|---|
basePath | string | La ruta base de la URL. |
buildId | string | undefined | El identificador de compilación de la aplicación Next.js. Puede personalizarse. |
defaultLocale | string | undefined | La configuración regional predeterminada para internacionalización. |
domainLocale | ||
- defaultLocale | string | La configuración regional predeterminada dentro de un dominio. |
- domain | string | El dominio asociado a una configuración regional específica. |
- http | boolean | undefined | Indica si el dominio usa HTTP. |
locales | string[] | undefined | Un array de configuraciones regionales disponibles. |
locale | string | undefined | La configuración regional actualmente activa. |
url | URL | El objeto URL. |
ip
La propiedad ip
es un string que contiene la dirección IP de la solicitud. Este valor puede ser proporcionado opcionalmente por tu plataforma de hosting.
Bueno saber: En Vercel, este valor se proporciona por defecto. En otras plataformas, puedes usar el encabezado
X-Forwarded-For
para proporcionar la dirección IP.
// Proporcionado por Vercel
request.ip
// Auto-hospedaje
request.headers.get('X-Forwarded-For')
geo
La propiedad geo
es un objeto que contiene información geográfica de la solicitud. Este valor puede ser proporcionado opcionalmente por tu plataforma de hosting.
Bueno saber: En Vercel, este valor se proporciona por defecto. En otras plataformas, puedes usar el encabezado
X-Forwarded-For
para obtener la dirección IP, luego usar un servicio de terceros para buscar la información geográfica.
// Proporcionado por Vercel
request.geo.city
request.geo.country
request.geo.region
request.geo.latitude
request.geo.longitude
// Auto-hospedaje
function getGeo(request) {
let ip = request.headers.get('X-Forwarded-For')
// Usa un servicio de terceros para buscar la información geográfica
}