1.5 KiB
1.5 KiB
Cache Middleware Usage
The caching middleware can be used to cache GET requests for better performance.
Basic Usage
import express from 'express';
import { cacheMiddleware } from '../middleware/cache.js';
const router = express.Router();
// Cache response for 30 seconds (default)
router.get('/endpoint', cacheMiddleware(30), async (req, res) => {
// Your route handler
const data = await fetchData();
res.json({ success: true, data });
});
// Cache for 60 seconds
router.get('/slow-endpoint', cacheMiddleware(60), async (req, res) => {
const data = await expensiveOperation();
res.json({ success: true, data });
});
// No caching (bypass cache middleware)
router.get('/realtime', async (req, res) => {
const data = await getRealtimeData();
res.json({ success: true, data });
});
When to Use Caching
✅ Use caching for:
- Expensive database queries
- Data that doesn't change frequently
- API endpoints that are called repeatedly
- Aggregated/summarized data
❌ Don't use caching for:
- Real-time data (prices, alerts)
- User-specific data
- Data that changes frequently
- POST/PUT/DELETE requests (automatically bypassed)
Cache Management
import { clearCache, getCacheStats } from '../middleware/cache.js';
// Clear all cached data
clearCache();
// Get cache statistics
const stats = getCacheStats();
console.log(stats);
// {
// keys: 5,
// hits: 150,
// misses: 20,
// ksize: 1024,
// vsize: 51200
// }