Expressでキャッシュ制御をする

 javascript express

express-cache-controller が便利だったのでご紹介。

どういった所で便利か

express で普段はキャッシュさせたくないけど、画像生成しているところはキャッシュさせたい……といった要件があった場合にレスポンスヘッダをいい感じに制御してくれます。

インストール

npm install express-cache-controller

typescriptの方は@typesは不要です。

使い方

まずはミドルウェアとして登録します。 server.js など一番最初に呼ばれるところでいいと思います。

app.use(cacheControl())

これでデフォルトでこのミドルウェアが通るルートのヘッダに no-cacheが付与され、キャッシュされなくなります。

あとはキャッシュさせたい箇所で以下のようにします。

app.get('/cached', (req, res) => {
  res.cacheControll = {
    maxAge: 60 * 60 * 24 * 14 // キャッシュの有効期限を秒数で指定
  }

  res.send('cached content')
})

簡単でいいですね!

ちなみにこのblogでも画像を取得する部分でこのキャッシュ制御を導入しています。

Published at 2020-02-28 18:27