Skip to content

sdkcore/node-hapi-redis

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Dependencies Status DevDependencies Status

Hapi-Redis

This is a plugin to share a common redis connection across the whole Hapi server.

This version is intended for use with hapi v8.x.x

If you are looking for a version that works with hapi v7.x.x then please use version 1.x.x

As of 3.x.x it is now possible to register this plugin multiple times

As of 4.x.x it is now possible to supply a connection string as the option

As of 4.x.x redis is now a peer dependency (0.12.x) to allow users more freedom with redis versions

As of 5.x.x we've scrapped redis as a peer deps

With 6.x.x the options object has changed it's signature

Registering the plugin

Options:

  • redisLibrary: passing in a redis module to override the one bundled with this module. optional.
  • connection: an object or string that is passed through to basic-redis-factory as the 2nd argument. The relevant part of the docs are reproduced here for ease of reference:

connection can either be a url connection string (i.e redis://user:[email protected]:6379) or an object.

if connection is an object then the factory will look for the following keys on the object and fallback to defaults for any missing values (host: 127.0.01, port: 6379, no authentication).

  • url : a url connection string.
  • host: the host to connect to.
  • port: the port to connect to.
  • password: the password to authenticate with, if not supplied then no auth will applied.
  • opts: an options object as expected by redis.createClient.

If opts.url is supplied then opts.host, opts.port, and opts.password keys will be ignored.

If you wish to use the hiredis parser then just:

npm install -save hiredis

and this module will automatically use it (unless you override that with the parser option).

The registration of this plugin will only complete on either succesful connection to the redis instance or an error.

Using the plugin

Two objects are exposed by this plugin :

  • client : a redis client connection object that is connected to the redis instance
  • library: the redis module used by this module

Example

var Hapi = require("hapi");

var myPluginOpts = {
    connection: {
        "host": "localhost"
        "opts": {
            "parser": "javascript"
        }
    }
};

var server = new Hapi.Server(8080);

server.pack.register({
    register: require('hapi-redis'),
    options: myPluginOpts
}, function () {

});

server.route( {
    "method"  : "GET",
    "path"    : "/stats",
    "handler" : usersHandler
});

function usersHandler(request, reply) {
    var redisClient = request.server.plugins['hapi-redis'].client;

    // Do something with the redis client
    // reply(result);
};

server.start(function() {
    console.log("Server started at " + server.info.uri);
});

About

A hapi plugin to provide redis

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%