< Express

Express - Cache

Szerző: Sallai András

Copyright © 2025, Sallai András

Licenc: CC Attribution-Share Alike 4.0 International

Web: https://szit.hu

Bevezetés

Ha az alkalmazásod gyorsan változó adatokat jelenít meg, szükség lehet a kliensoldali tárolás kikapcsolására. Ilyenek lehetnek a csevegőüzenetek, tőzsdei árfolyamok, élő sportesemények stb.

Biztonsági megfontolások miatt is kikapcsolhatók. Például gyorsan változó jogosultságok, munkamenetek egy banki rendszerben.

A fejlesztési időben is szükség lehet a változások azonnali láthatóvá válására.

Ilyen lehet a dinamikusan generált tartalom.

A cache teljes kikapcsolása azonban rontja az alkalmazás teljesítményét, és növeli a szerver terhelését.

Kliensoldali cache kikapcsolása

Telepítsük a nocache csomagot:

npm install nocache

Használat

A nocache csomagot köztes szoftverként fogjuk használni:

import nocache from 'nocache'; // ... app.use(nocache());

Útvonalra alkalmazás

Adott útvonalra használat:

router.get('/employees', [verifyToken, nocache()], EmployeeController.store);

Ha a verifyToken sikeresen lefut, akkor alkalmazzuk a nocache()-t.

A nocache() beállítja a következő fejléceket:

Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate

Pragma: no-cache

Expires: 0

Ez megoldható saját middleware függvénnyel is:

function nocache(req, res, next) { res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); res.header('Expires', '-1'); res.header('Pragma', 'no-cache'); next(); }
app.get('/employees', nocache, EmployeeController.store);