Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
itp-express-redis-cache
Advanced tools
A light api route cache system with Redis for Express.js
npm install itp-express-redis-cache
const express = require('express');
const app = express();
const ITPExpressRedisCache = require('itp-express-redis-cache')();
app.get('/', ITPExpressRedisCache.route(), (req, res) => {
res.json({ foo: 'bar' });
});
app.listen(3000, () => {
console.log('Example app listening on port 3000!');
});
Init options:
const ITPExpressRedisCache = require('itp-express-redis-cache')({
port: 6379, // redis port
host: 'localhost', // redis host
authPass: null, // redis pass
db: 0, // redis database id
prefix: 'my-sample-app', // redis key prefix, e.g. 'my-sample-app:route:GET:/'
enabled: true, // disable/enable route caching, for example in debug mode
excludeStatuscodes: 500, // disable response caching based on response statuscode. Possible values: number, array, function (excludes 500 and higher by default)
});
The excludeStatuscodes parameter can also be an array:
const ITPExpressRedisCache = require('itp-express-redis-cache')({
port: 6379,
host: 'localhost',
authPass: null,
db: 0,
prefix: 'my-sample-app',
enabled: true,
excludeStatuscodes: [404, 406, 408, 410], // disable response caching based on response statuscode. Possible values: number, array, function (excludes 500 and higher by default)
});
Route middleware options:
ITPExpressRedisCache.route({
key: 'custom-redis-key-for-route', // custom redis key
expire: 120, // expiration time in seconds
})
The route key parameter can also be a function:
ITPExpressRedisCache.route({
key: (req) => `custom-key:${req.originalUrl}`, // custom function
expire: 120, // expiration time in seconds
})
The expire parameter can also be a function:
ITPExpressRedisCache.route({
key: (req) => `custom-key:${req.originalUrl}`, // custom function
expire: (req) => 120 + 4, // expiration time in seconds
})
Simply use app.use
of express to use ITPExpressRedisCache
as an Application-level middleware.
app.use(ITPExpressRedisCache.route())
You can disable caching for specific routes by adding res.skipCache = true
to opt out the route from getting cached.
app.get('/:paramKey', (req, res) => {
res.skipCache = paramKey === 1300;
res.send('Hello');
});
ITP-Express-Redis-Cache is freely distributable under the terms of the MIT license.
FAQs
A light api route cache system with Redis for Express
The npm package itp-express-redis-cache receives a total of 2 weekly downloads. As such, itp-express-redis-cache popularity was classified as not popular.
We found that itp-express-redis-cache demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.