institutional-trader/README/CACHE_USAGE_EXAMPLE.md

66 lines
1.5 KiB
Markdown

# Cache Middleware Usage
The caching middleware can be used to cache GET requests for better performance.
## Basic Usage
```javascript
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
```javascript
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
// }
```