Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Session management middleware for connect
JavaScript

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
test
tools
.gitignore
.npmignore
.travis.yml
LICENSE
README.md
example.js
index.js
package.json

README.md

Connect CouchDB

connect-couchdb is a middleware session store for the connect framework. Build Status

Requirements

  • request 2.x
  • couchdb 1.0.x or higher
  • expresso (only for tests)

Installation

Via npm:

$ npm install connect-couchdb

Usage

var connect = require('connect'),
    ConnectCouchDB = require('connect-couchdb')(connect);

var store = new ConnectCouchDB({
  // Name of the database you would like to use for sessions.
  name: 'myapp-sessions',

  // Optional. How often expired sessions should be cleaned up.
  // Defaults to 600000 (10 minutes).
  reapInterval: 600000,

  // Optional. How often to run DB compaction against the session
  // database. Defaults to 300000 (5 minutes).
  // To disable compaction, set compactInterval to -1
  compactInterval: 300000,

  // Optional. How many time between two identical session store
  // Defaults to 60000 (1 minute)
  setThrottle: 60000
});
var server = connect.createServer();
server.use(connect.session({secret: 'YourSecretKey', store: store });

If the database specified doesn't already exist you have to create it with tools/ files. Run following command to create database, populate with the design document and setup the CouchDB database specific option _revs_limit :

$ node tools/setup.js <database_name> <revs_limit> [username] [password]

For more informations about the _revs_limit option, read this.

It is highly recommended that you use a separate database for your sessions for performance of both the session views and any other document views you may have.

See example.js file for an example connect server using connect-couch.

Tests

$ npm test

Author

Contributors

$ git shortlog -s -n
Something went wrong with that request. Please try again.