app2-api/middlewares/cache.js

27 lines
789 B
JavaScript

const apicache = require('apicache');
const redis = require('redis');
const NODE_ENV = process.env.NODE_ENV || 'development';
const cacheWithRedis = apicache
.options({
debug: true,
defaultDuration: '1 minute',
enabled: NODE_ENV !== 'development',
//redisClient: redis.createClient(),
//appendKey: (req, res) => req.user ? req.user.id : '',
});
const cacheMiddleware = cacheWithRedis.middleware;
// higher-order function returns false for responses of other status codes (e.g. 403, 404, 500, etc)
const onlyStatus200 = (req, res) => res.statusCode === 200
const cacheSuccesses = (time) => { return cacheMiddleware(time, onlyStatus200) };
module.exports = {
apicache: cacheWithRedis,
cacheMiddleware,
cacheSuccesses,
}