[[:oktatas:web:back-end_framework:express|< Express]] ====== Express - Cache ====== * **Szerző:** Sallai András * Copyright (c) 2025, Sallai András * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|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 ===== Saját köztes függvény ===== 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);