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. |
pathname | string | El pathname de la URL. |
searchParams | Object | Los parámetros de búsqueda de la URL. |
Nota: Las propiedades de internacionalización del Enrutador de Páginas no están disponibles para usar en el Enrutador de Aplicaciones. Más información sobre internacionalización con el Enrutador de Aplicaciones.
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
}