@pager/hapi-redis

2.1.7 • Public • Published

hapi-redis

A node-redis hapi plugin

CircleCI

Installation

npm install --save @pager/hapi-redis

Quick start

This pretty much works as a regular node-redis client, with the addition of providing an easily accessible instance via the server.app common namespace.

Examples

const Hapi = require('hapi');
const server = new Hapi.Server();
server.connection({ host: 'localhost' });

const options = {
    // node-redis config options - http://redis.js.org/#api-rediscreateclient
};

// Register the plugin
server.register({
    register: require('@pager/hapi-redis'),
    options: options
}, (err) => {

    if (err) {
        console.error(err);
    } 
    else {
        server.start(() => {

            console.info(`Server started at ${server.info.uri}`);
        });
    }
});

// Declare a route that uses it
server.route({
    method: 'GET',
    path: '/stats',
    handler: usersHandler
});

usersHandler (request, reply) => {

    // Access the redis instance
    const client = request.redis;
    client.hgetall('users', (err, obj) => {
    
        if (err) {
            throw err
        }

        return reply({ result: obj });
    });
};

server.start(() => {
    console.log(`Server started at ${server.info.uri}`);
});

Async support

You could use next promisified methods, e.g.:

const res = await getAsync(key);
Original method Promisified method
set setAsync
get getAsync
flushall flushallAsync
quit quitAsync
keys keysAsync
ttl ttlAsync

Tests

To run the test suite, first install the dependencies, then run npm test:

$ npm install
$ npm test

Versions

  • Use 1.x.x for hapi@16
  • Use 2.x.x for hapi@17 or later

Acknowledgements

This module borrows heavily from hapi-ioredis.

Readme

Keywords

Package Sidebar

Install

npm i @pager/hapi-redis

Weekly Downloads

23

Version

2.1.7

License

MIT

Unpacked Size

5.96 kB

Total Files

5

Last publish

Collaborators

  • craig-parker-pager
  • jvelezpo
  • kevinchang-pager
  • amalajose-onlife
  • lancehamiltonolh
  • jay-darren-miller
  • meerabjorn-onlife
  • richibbs
  • moui
  • matthew_moss
  • max-d-lucas
  • justin_pennington
  • cody-greene
  • adimoff
  • lance_lyons
  • felipe.correa
  • catherinekimyj-pager
  • zacharyjuang
  • 18sheimanr
  • sapnamate
  • nachocasas
  • slimoges-onlifepager
  • petermai-pager
  • brianseidl_pager
  • esteban.villa
  • joe.wacker.pager
  • batroukhhamza
  • calvinkosmatka
  • i-am-ian
  • timvallier-pager
  • ankita.banait
  • lgenzelis
  • alena.b.pager
  • tjharke13
  • marcie.price
  • melinamejia95
  • kyleherrmann
  • durenh
  • juanpahdz
  • luciabrumnich.pager
  • chrisft25
  • juandara22
  • m4shu
  • juancabuhe
  • joan.semander
  • mariano-ramonda
  • fauricio-pager
  • divyasehgal
  • mark.ferris
  • dmsq22
  • exequiel-sanoner
  • juan.lacoste.pager
  • jiggyjigsj
  • ijuani
  • jsanmi
  • aftab-alam-khan
  • peter-vizi-pager
  • ramanvas
  • epsanchezma
  • circle-pager
  • sa-pagerinc-automation
  • fcue
  • roybay04
  • shankyjs
  • ryshah1207
  • gh0stl1m-p
  • ilmancino
  • blaine-pager
  • jmelero.pager