キャッシュミドルウェア
キャッシュミドルウェアは、Web標準のCache APIを使用します。
キャッシュミドルウェアは現在、カスタムドメインを使用するCloudflare Workersプロジェクトと、Deno 1.26+を使用するDenoプロジェクトをサポートしています。Deno Deployでも利用可能です。
Cloudflare WorkersはCache-Control
ヘッダーを尊重し、キャッシュされたレスポンスを返します。詳細については、Cloudflare Docsのキャッシュを参照してください。Denoはヘッダーを尊重しないため、キャッシュを更新する必要がある場合は、独自のメカニズムを実装する必要があります。
各プラットフォームでの手順については、以下の使用法を参照してください。
インポート
import { Hono } from 'hono'
import { cache } from 'hono/cache'
使用法
app.get(
'*',
cache({
cacheName: 'my-app',
cacheControl: 'max-age=3600',
})
)
// 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
です。