connect-rethinkdb

RethinkDB session store for Connect

Connect RethinkDB

###RethinkDB session store for Connect

Inspired by TJ Holowaychuk's Connect Redis

##Installation

npm install connect-rethinkdb

##Getting started

Note that you must already have Connect installed (npm install connect).

var connect = require('connect'),
  RDBStore = require('connect-rethinkdb')(connect);
 
var rDBStore = new RDBStore({
  flushOldSessIntvl: 60000,
  clientOptions: {
    db: 'test'
    host: 'localhost',
    port: '28015'
  }
  table: 'session'
});
 
connect().
use(connect.favicon()).
use(connect.cookieParser()).
use(connect.session({
  secret: 'keyboard cat',
  cookie: {
    maxAge: 10000
  },
  store: rDBStore
})).
use(...);

##Constructor options

###flushOldSessIntvl Unlike Redis, RethinkDB does not provide a SETEX function. So we have to flush expired sessions periodically. This defines the amount of time between two flushes. Defaults to 60 seconds

###clientPromise - REMOVED IN 0.4.0 ! A promise (see Deferred module) that resolves with a RethinkDB connection. Defaults to undefined. See clientOptions below if you can't provide this.

###clientOptions We need these to connect to our DB. Used only when no clientPromise is provided. See RethinkDB's doc.

###table Name of the table in which session data will be stored. Defaults to 'session'

###browserSessionsMaxAge If you do not set cookie.maxAge in session middleware, sessions will last until the user closes his/her browser. However we cannot keep the session data infinitely (for size and security reasons). In this case, this setting defines the maximum length of a session, even if the user doesn't close his/her browser. Defaults to 1 day

Removed clientPromise option in constructor. Just use classic RethinkDB clientOptions. (It's because we now use under the hood RQL-Promise).