Bun.Cookie 和 Bun.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
set(cookie: Cookie): 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
Cookie 类
Bun.Cookie 表示一个 HTTP cookie,包括名称、值以及属性。
cookie-class.ts
构造函数
constructors.ts
属性
cookie-properties.ts
方法
isExpired(): boolean
检查 cookie 是否已过期。当同时设置了 maxAge 和 expires 时,按照 RFC 6265 的要求,以 maxAge 为准。
is-expired.ts
serialize(): string
toString(): string
返回适用于 Set-Cookie 头的字符串格式。
serialize-cookie.ts
toJSON(): CookieInit
将 cookie 转换为适合 JSON 序列化的普通对象。
cookie-json.ts
静态方法
Cookie.parse(cookieString: string): Cookie
将 cookie 字符串解析为 Cookie 实例。
parse-cookie.ts
Cookie.from(name: string, value: string, options?: CookieInit): Cookie
用于创建 cookie 的工厂方法。
cookie-from.ts
类型定义
types.ts