http-cacher

Simple Express middleware to add http cache using max age header

Usage no npm install needed!

<script type="module">
  import httpCacher from 'https://cdn.skypack.dev/http-cacher';
</script>

README

http-cacher

Simple HTTP cache middleware for express js applications

Usage

If you want to apply for all requests...

const httpCacher = require('http-cacher');
app.use(httpCacher({ maxAge: 300})); // 300 seconds

You can also write the above example like this..

const httpCacher = require('http-cacher');
app.use(httpCacher({ maxAge: '300s'})); // 300 seconds

If you want to apply for specific end-point...

const httpCacher = require('http-cacher');
app.use('/api/v1', httpCacher({ maxAge: '1d'}));

If you want to apply for specific http method

const httpCacher = require('http-cacher');
app.get('/api/v1/books', httpCacher({ maxAge: '1d'}), (req, res, next) => {
    res.json({
        books: [
            'Eloquent JavaScript: A Modern Introduction to Programming',
            'JavaScript: The Good Parts',
            'JavaScript for Kids: A Playful Introduction to Programming'
        ]
    });
});

If you want to apply headers conditionally... (You can pass custom function as second argument)

const httpCacher = require('http-cacher');
const zeroCacheAdmin = (req) => {
  if (req.tokenData?.role === ADMIN) {
    return false;
  }

  return true;
};

app.use(httpCacher({ maxAge: '1d'}, zeroCacheAdmin));

If you want to apply set cache as private

const httpCacher = require('http-cacher');
app.use(httpCacher({ maxAge: '1m', isPrivate: true})); // 1 minute