缓存中间件
缓存中间件使用 Web 标准的 缓存 API.
缓存中间件目前支持使用自定义域的 Cloudflare Workers 项目和使用 Deno 1.26+ 的 Deno 项目。也适用于 Deno Deploy。
Cloudflare Workers 尊重 Cache-Control
标头并返回缓存的响应。有关详细信息,请参阅 Cloudflare 文档上的缓存。Deno 不尊重标头,因此如果您需要更新缓存,您需要实现自己的机制。
请参阅下面的 用法,了解每个平台的说明。
导入
ts
import { Hono } from 'hono'
import { cache } from 'hono/cache'
用法
ts
app.get(
'*',
cache({
cacheName: 'my-app',
cacheControl: 'max-age=3600',
})
)
ts
// Must use `wait: true` for the Deno runtime
app.get(
'*',
cache({
cacheName: 'my-app',
cacheControl: 'max-age=3600',
wait: true,
})
)
选项
必需 cacheName: string
| (c: Context) => string
| Promise<string>
缓存的名称。可用于使用不同的标识符存储多个缓存。
可选 wait: boolean
一个布尔值,指示 Hono 是否应该等待 cache.put
函数的 Promise 解决,然后再继续处理请求。Deno 环境需要为 true。默认值为 false
。
可选 cacheControl: string
用于 Cache-Control
标头的指令字符串。有关更多信息,请参阅 MDN 文档。当未提供此选项时,不会将任何 Cache-Control
标头添加到请求中。
可选 vary: string
| string[]
在响应中设置 Vary
标头。如果原始响应标头已经包含 Vary
标头,则会合并这些值,并删除所有重复项。将其设置为 *
会导致错误。有关 Vary 标头及其对缓存策略的影响的更多详细信息,请参阅 MDN 文档.
可选 keyGenerator: (c: Context) => string | Promise<string>
为 cacheName
存储中的每个请求生成键。这可以用于根据请求参数或上下文参数缓存数据。默认值为 c.req.url
。