express-lru-cache

1.0.6 • Public • Published

express-lru-cache

NPM version

Express middleware that serves as a stopgap for Varnish – for times when you don't have time to set up Varnish or want something simpler. This package is a copy of express-lru with some extra abilities for getting and deleting single or mutliple keys

A few notes:

  • It will only cache 200-status responses.
  • Response headers (like Content-Type) will be cached and served like normal.
  • Supports JSON, Buffers, and Strings.
  • Has a "skip" option that allows for control of what requests bypass the cache. In most cases you’ll want to return true for logged in users.

Example Usage

const ExpressLruCache = require('express-lru-cache');
const app = express();
global.Cacher = new ExpressLruCache({
    max: 1000,
    ttl: 60000
}); // initialize the cacher right after initializing express app..

const cache = Cacher.middleware({
    skip: function(req) {
        return !!req.user;
    }
});

app.get('/myroute', cache, function(req, res, next) {
    if(i_have_to_purge_the_cache) Cacher.reset();
    if(i_have_to_purge_a_specific_cache) Cacher.del('/some-url');
});

Options

    {
        ttl: 1000 // TTL. Default 30000 .
        max: 1000 // maxAfge. Default 1000
    }

Methods

middleware(options)

Returns an express middleware for the cache.

// options
    {
        skip: function(req){
            return !!req.user // when to disable cache
        }
    }
set(key, value, maxAge)

Sets a new value to a cache.

get(key, cb)

Gets cached value for a key.

del(key)

Deletes a key and its value from the cache.

reset()

Purges all the cache.

keys()

Gets all the keys inside the store.

peek(key)

Works like .get(key) but does not update the "recently used"-ness of the key.

has(key)

Checks if a key exists.


Your contribution to this package will be appreciated. Please create a pull request for any changes.

License

Copyright © 2019 Peshraw Ahmed & Contributors

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package Sidebar

Install

npm i express-lru-cache

Weekly Downloads

120

Version

1.0.6

License

Apache-2.0

Unpacked Size

24.9 kB

Total Files

8

Last publish

Collaborators

  • peshraw