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

guillaumervls/connect-rethinkdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚠️ UNMAINTAINED ⚠️

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

Changelog

0.4.0

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

About

RethinkDB session store for Connect

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published