A session mananger for Nodejs that uses Redis as an underlying store and supports namespaced sessions.
npm install promise-session
Session = require('promise-session').create()
session = Session.start()
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')
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.
To tell whether a session is active you may check session.is_active
Session.put('key', 'value')
You may also store multiple key/value pairs:
Session.put({
key1: 'val1',
key2: 'val2',
key3: 'val3'
});
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
});
Session.remove('key')
session.destroy()
will erase everything related to that session
The values listed below are the defaults.
Session = require('promise-session').create({
session: {
prefix: 'session'
},
redis: {
host: '127.0.0.1',
port: 6379
}
});
- 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