NextRequest
NextRequest 扩展了 Web Request API,添加了额外的便捷方法。
cookies
读取或修改请求的 Set-Cookie
头。
set(name, value)
给定一个名称,在请求上设置一个具有给定值的 cookie。
get(name)
给定一个 cookie 名称,返回 cookie 的值。如果未找到 cookie,则返回 undefined
。如果找到多个 cookie,则返回第一个。
getAll()
给定一个 cookie 名称,返回 cookie 的值。如果未给定名称,则返回请求上的所有 cookie。
delete(name)
给定一个 cookie 名称,从请求中删除该 cookie。
has(name)
给定一个 cookie 名称,如果该 cookie 存在于请求中则返回 true
。
clear()
从请求中移除 Set-Cookie
头。
nextUrl
扩展了原生 URL
API,添加了额外的便捷方法,包括 Next.js 特定的属性。
可用的选项如下:
属性 | 类型 | 描述 |
---|---|---|
basePath | string | URL 的基础路径。 |
buildId | string | undefined | Next.js 应用的构建标识符。可以自定义。 |
pathname | string | URL 的路径名。 |
searchParams | Object | URL 的搜索参数。 |
值得注意的是:Pages Router 中的国际化属性在 App Router 中不可用。了解更多关于 App Router 中的国际化。
ip
ip
属性是一个包含请求 IP 地址的字符串。这个值可以由你的托管平台选择性提供。
提示: 在 Vercel 上,默认提供这个值。在其他平台上,你可以使用
X-Forwarded-For
头来提供 IP 地址。
geo
geo
属性是一个包含请求地理信息的对象。这个值可以由你的托管平台选择性提供。
提示: 在 Vercel 上,默认提供这个值。在其他平台上,你可以使用
X-Forwarded-For
头来提供 IP 地址,然后使用 第三方服务 查找地理信息。