Bun.Cookie 和 Bun.CookieMap。这些 API 提供了快速、易于使用的方法来解析、生成和操作 HTTP 请求和响应中的 cookies。
CookieMap 类
Bun.CookieMap 提供了一个类似 Map 的接口来处理 cookie 集合。它实现了 Iterable 接口,允许您在 for...of 循环和其他迭代方法中使用它。
在 HTTP 服务器中
在 Bun 的 HTTP 服务器中,请求对象(在routes 中)的 cookies 属性是 CookieMap 的一个实例:
方法
get(name: string): string | null
按名称检索 cookie。如果 cookie 不存在,则返回 null。
has(name: string): boolean
检查给定名称的 cookie 是否存在。
set(name: string, value: string): void
set(options: CookieInit): void
set(cookie: Cookie): void
在 map 中添加或更新 cookie。Cookies 默认为 { path: "/", sameSite: "lax" }。
delete(name: string): void
delete(options: CookieStoreDeleteOptions): void
从 map 中移除 cookie。当应用到响应时,这会添加一个空值的 cookie 并设置过去的过期日期。只有当域名和路径与创建 cookie 时相同,cookie 才能在浏览器中成功删除。
toJSON(): Record<string, string>
将 cookie map 转换为可序列化的格式。
toSetCookieHeaders(): string[]
返回 Set-Cookie 头的值数组,可用于应用所有 cookie 更改。
使用 Bun.serve() 时,您无需显式调用此方法。对 req.cookies map 的任何更改都会自动应用到响应头。此方法主要用于其他 HTTP 服务器实现。
node-server.js
迭代
CookieMap 提供了多种迭代方法:
属性
size: number
返回 map 中的 cookie 数量。
Cookie 类
Bun.Cookie 表示一个具有名称、值和属性的 HTTP cookie。
构造函数
属性
方法
isExpired(): boolean
检查 cookie 是否已过期。
serialize(): string
toString(): string
返回适合 Set-Cookie 头的 cookie 字符串表示。
toJSON(): CookieInit
将 cookie 转换为适合 JSON 序列化的普通对象。
静态方法
Cookie.parse(cookieString: string): Cookie
将 cookie 字符串解析为 Cookie 实例。