const cache = require('../utils/redis'); // Middleware для кэширования GET запросов const cacheMiddleware = (ttl = 300) => { return async (req, res, next) => { // Кэшировать только GET запросы if (req.method !== 'GET') { return next(); } if (!cache.isConnected()) { return next(); } const key = `cache:${req.originalUrl}`; try { const cachedData = await cache.get(key); if (cachedData) { return res.json(cachedData); } // Перехватить res.json для сохранения в кэш const originalJson = res.json.bind(res); res.json = (data) => { cache.set(key, data, ttl); return originalJson(data); }; next(); } catch (error) { console.error('Cache middleware error:', error); next(); } }; }; module.exports = cacheMiddleware;