Skip to main content
Bun 提供了两个原生 API 用于处理 HTTP Cookie:Bun.CookieBun.CookieMap。它们可以解析、生成和操作 HTTP 请求和响应中的 Cookie。

CookieMap 类

Bun.CookieMap 是一个类似 Map 的 Cookie 集合。它实现了 Iterable,因此适用于 for...of 循环和其他迭代方法。
cookies.ts

在 HTTP 服务器中

在 Bun 的 HTTP 服务器中,请求对象上的 cookies 属性(在 routes 中)是 CookieMap 的一个实例:
server.ts

方法

get(name: string): string | null

按名称检索 Cookie。如果 Cookie 不存在,返回 null
get-cookie.ts

has(name: string): boolean

检查具有给定名称的 Cookie 是否存在。
has-cookie.ts

set(name: string, value: string): void

set(options: CookieInit): void

添加或更新 map 中的 Cookie。Cookie 默认为 { path: "/", sameSite: "lax" }
set-cookie.ts

delete(name: string): void

delete(options: CookieStoreDeleteOptions): void

从 map 中移除一个 Cookie。当应用于 Response 时,这会添加一个值为空字符串且过期时间为过去的 Cookie。浏览器只有在域和路径与创建时匹配时才会删除 Cookie。
delete-cookie.ts

toJSON(): Record<string, string>

将 Cookie map 转换为可序列化的格式。
cookie-to-json.ts

toSetCookieHeaders(): string[]

返回用于 Set-Cookie 头部的值数组,该数组应用所有 Cookie 更改。 在与 Bun.serve() 之外的 HTTP 服务器一起使用时使用此方法。在 Bun.serve() 中,你不需要调用它:对 req.cookies map 的任何更改都会自动应用到响应头部。
node-server.js

迭代

CookieMap 提供了几种迭代方法:
iterate-cookies.ts

属性

size: number

返回 map 中的 Cookie 数量。
cookie-size.ts
Bun.Cookie 表示一个带有名称、值和属性的 HTTP Cookie。
cookie-class.ts

构造函数

constructors.ts

属性

cookie-properties.ts

方法

isExpired(): boolean

检查 Cookie 是否已过期。当同时设置了 maxAgeexpires 时,maxAge 优先,如 RFC 6265 所要求。
is-expired.ts

serialize(): string

toString(): string

返回适合用于 Set-Cookie 头部的 Cookie 字符串表示。
serialize-cookie.ts

toJSON(): CookieInit

将 Cookie 转换为适合 JSON 序列化的普通对象。
cookie-json.ts

静态方法

将 cookie 字符串解析为 Cookie 实例。
parse-cookie.ts
创建 Cookie 的工厂方法。
cookie-from.ts

类型定义

types.ts