Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    hapi-redis-output-cachepublic

    hapi-redis-output-cache

    Redis-backed output cache plugin for Hapi

    Build StatusDependency Status NPM version

    NPM

    Usage

    $ npm i hapi-redis-output-cache --save
    
    var server = new (require('hapi').Server)();
    server.connection({ port: 3000 });
    
    server.register([
        {
            register: require('hapi-redis-output-cache'),
            options: {
                host: '127.0.0.1',
                staleIn: 30,
                expiresIn: 60
            }
        }
    ], function (err) {
        if (err) {
            console.error('Failed to load plugin:', err);
        }
    
        server.start();
    });
    

    Configuration

    • host - hostname or IP address of the Redis server
    • port - (optional) port of the Redis server; defaults to 6379
    • varyByHeaders - (optional) an array of headers to be used for generating cache key; defaults no none
    • partition - (optional) string to prefix cache keys with, useful for shared redis instances
    • staleIn - number of seconds until the cached response will be considered stale and marked for regeneration
    • expiresIn - number of seconds until the cached response will be purged from Redis
    • onCacheMiss - (optional) function(req, reply){ ... } invoked on each cache write; useful for responding to cache miss events

    Route Settings

    By default, output caching is disabled. To enable it for a specific route, set isCacheable: true in the route settings:

    server.route({
        method: 'GET',
        path: '/',
        handler: function (request, reply) {
            return reply('hello world');
        },
        config: {
            plugins: {
                'hapi-redis-output-cache': {
                    isCacheable: true
                }
            }
        }
    });
    

    Miscellaneous

    Output cache metadata is injected into each request and can be access via req.outputCache:

    • isStale: boolean value indicating whether the cache is stale
    • data: object representing cached response (available even when stale)

    Release History

    • v3.0.0 (2015-07-11)
      • breaking changes:
        • require node >4
        • require hapi >8
        • new key generation algorithm will invalidate existing keys
        • removed onError hook
    • v2.0.2 (2015-07-22)
      • fixed caching bug
    • v2.0.1 (2015-07-13)
      • updated dependencies
    • v2.0.0 (2015-04-10)
      • added partition option
    • v1.0.3 (2015-03-31)
      • bug fixes
    • v1.0.0 (2015-03-30)
      • implemented a more sophisticated freshness mechanism which allows stale and expired data to be handled separately
      • implemented a whitelist of request headers to be used for generating cache key to provide more fine-grained control over keys
    • v0.2.1 (2015-03-30)
      • fixed handling of responses with failed joi validation
    • v0.2.0 (2015-03-30)
      • fixed cache key algorithm
    • v0.1.0 (2015-03-29)
      • initial release

    install

    npm i hapi-redis-output-cache

    Downloadsweekly downloads

    33

    version

    3.0.0

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar
    • avatar
    • avatar
    • avatar