The best API caching lib in NodeJS
I have seen one of the library that can store our payload in memory cache & get faster response. The library name is api-cache. Cache a route import express from 'express' import apicache from 'apicache' let app = express() let cache = apicache.middleware app.get('/api/collection/:id?', cache('5 minutes'), (req, res) => { // do some work... this will only occur once per 5 minutes res.json({ foo: 'bar' }) }) Cache all routes let cache = apicache.middleware app.use(cache('5 minutes')) app.get('/will-be-cached', (req, res) => { res.json({ success: true }) }) Use with Redis import express from 'express' import apicache from 'apicache' import redis from 'redis' let app = express() // if redisClient option is defined, apicache will use redis client // instead of built-in memory store let cacheWithRedis = apicache.options({ redisClient: redis.createClient() }).middleware app.get('/will-be-cached', cacheWithRedis('5 minutes'), (req, res) => { res.json({ success: true }) }) Cache grouping and manual controls import apicache from 'apicache' let cache = apicache.middleware app.use(cache('5 minutes')) // routes are automatically added to index, but may be further added // to groups for quick deleting of collections app.get('/api/:collection/:item?', (req, res) => { req.apicacheGroup = req.params.collection res.json({ success: true }) }) // add route to display cache performance (courtesy of @killdash9) app.get('/api/cache/performance', (req, res) => { res.json(apicache.getPerformance()) }) // add route to display cache index app.get('/api/cache/index', (req, res) => { res.json(apicache.getIndex()) }) // add route to manually clear target/group app.get('/api/cache/clear/:target?', (req, res) => { res.json(apicache.clear(req.params.target)) }) /* GET /api/foo/bar --> caches entry at /api/foo/bar and adds a group called 'foo' to index GET /api/cache/index --> displays index GET /api/cache/clear/foo --> clears all cached entries for 'foo' group/collection I recommended this api middleware you can use. in that database where they are rarely update. like country, city and validators api data. */ Cozeniths Cozeniths is providing web services, app development and seo optimization cozeniths.com
I have seen one of the library that can store our payload in memory cache & get faster response.
The library name is api-cache.
Cache a route
import express from 'express'
import apicache from 'apicache'
let app = express()
let cache = apicache.middleware
app.get('/api/collection/:id?', cache('5 minutes'), (req, res) => {
// do some work... this will only occur once per 5 minutes
res.json({ foo: 'bar' })
})
Cache all routes
let cache = apicache.middleware
app.use(cache('5 minutes'))
app.get('/will-be-cached', (req, res) => {
res.json({ success: true })
})
Use with Redis
import express from 'express'
import apicache from 'apicache'
import redis from 'redis'
let app = express()
// if redisClient option is defined, apicache will use redis client
// instead of built-in memory store
let cacheWithRedis = apicache.options({ redisClient: redis.createClient() }).middleware
app.get('/will-be-cached', cacheWithRedis('5 minutes'), (req, res) => {
res.json({ success: true })
})
Cache grouping and manual controls
import apicache from 'apicache'
let cache = apicache.middleware
app.use(cache('5 minutes'))
// routes are automatically added to index, but may be further added
// to groups for quick deleting of collections
app.get('/api/:collection/:item?', (req, res) => {
req.apicacheGroup = req.params.collection
res.json({ success: true })
})
// add route to display cache performance (courtesy of @killdash9)
app.get('/api/cache/performance', (req, res) => {
res.json(apicache.getPerformance())
})
// add route to display cache index
app.get('/api/cache/index', (req, res) => {
res.json(apicache.getIndex())
})
// add route to manually clear target/group
app.get('/api/cache/clear/:target?', (req, res) => {
res.json(apicache.clear(req.params.target))
})
/*
GET /api/foo/bar --> caches entry at /api/foo/bar and adds a group called 'foo' to index
GET /api/cache/index --> displays index
GET /api/cache/clear/foo --> clears all cached entries for 'foo' group/collection
I recommended this api middleware you can use. in that database where they are rarely update. like country, city and validators api data.