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

CookieMap 类

Bun.CookieMap 是一个类似 Map 的 cookie 集合。它实现了 Iterable,因此可以与 for...of 循环和其他迭代方法一起使用。
cookies.ts

在 HTTP 服务器中使用

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

方法

get(name: string): string | null

根据名称获取 cookie。如果不存在则返回 null
get-cookie.ts

has(name: string): boolean

检查是否存在指定名称的 cookie。
has-cookie.ts

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

set(options: CookieInit): void

添加或更新一个 cookie。默认的 cookie 设置为 { path: "/", sameSite: "lax" }
set-cookie.ts

delete(name: string): void

delete(options: CookieStoreDeleteOptions): void

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

toJSON(): Record<string, string>

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

toSetCookieHeaders(): string[]

返回一个包含所有 cookie 变更对应的 Set-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 时,按照 RFC 6265 的要求,以 maxAge 为准。
is-expired.ts

serialize(): string

toString(): string

返回适用于 Set-Cookie 头的字符串格式。
serialize-cookie.ts

toJSON(): CookieInit

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

静态方法

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

类型定义

types.ts