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:

PropiedadTipoDescripción
basePathstringLa ruta base de la URL.
buildIdstring | undefinedEl identificador de compilación de la aplicación Next.js. Puede personalizarse.
pathnamestringEl pathname de la URL.
searchParamsObjectLos 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
}