Skip to content
This repository has been archived by the owner on Jan 4, 2022. It is now read-only.

A promise-based session manager using Redis as an underlying store.

License

Notifications You must be signed in to change notification settings

Vinelab/node-promise-session

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Dependency Status

Promise Session

A session mananger for Nodejs that uses Redis as an underlying store and supports namespaced sessions.

Installation

npm install promise-session

Usage

Session = require('promise-session').create()

Starting a session

session = Session.start()

Namespaced sessions

Namespaced sessions use hashes to store key/value pairs which is a recommended way to store large numbers of keys in Redis.

session = Session.start('namespace-here')

Session ID

Every session starts with a base64 unique ID that you can access with session.id

Now we can work with session to store, retrieve and remove key/value pairs.

Activity

To tell whether a session is active you may check session.is_active

Storing values

Session.put('key', 'value')

You may also store multiple key/value pairs:

Session.put({
    key1: 'val1',
    key2: 'val2',
    key3: 'val3'
});

Verifying and retrieving values

check = Session.has('key')
check.then(function(exists){
    if (exists) {
        // yes we got it.
    } else {
        // nope.
    }
});

Session.get('key').then(function(value){
    // do things with value
});

Just like storing, you may verify or retrieve multiple values:

Session.get(['key1', 'another-key', 'some-key']).then(function(values){
    // do things with the values
});

Removing values

Session.remove('key')

Destroying sessions

session.destroy() will erase everything related to that session

Configuration

The values listed below are the defaults.

Session = require('promise-session').create({
    session: {
        prefix: 'session'
    },
    redis: {
        host: '127.0.0.1',
        port: 6379
    }
});

Running Tests

  • Run a Redis instance (i.e. docker run -d -p 6379:6379 redis)
  • Perform any configuration required in test/config.coffee
  • npm run-script test

About

A promise-based session manager using Redis as an underlying store.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published