institutional-trader/README/CACHE_USAGE_EXAMPLE.md

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
// }