https://github.com/pirxpilot/mniam-store
connect session store backed by mongodb
https://github.com/pirxpilot/mniam-store
Last synced: 10 months ago
JSON representation
connect session store backed by mongodb
- Host: GitHub
- URL: https://github.com/pirxpilot/mniam-store
- Owner: pirxpilot
- License: mit
- Created: 2013-09-14T17:22:29.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2025-06-02T03:33:07.000Z (about 1 year ago)
- Last Synced: 2025-08-17T19:34:46.795Z (11 months ago)
- Language: JavaScript
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- Changelog: History.md
- License: License
Awesome Lists containing this project
README
[![NPM version][npm-image]][npm-url]
[![Build Status][build-image]][build-url]
[![Dependency Status][deps-image]][deps-url]
# Mniam Store
mniam-store is a connect session store backed by [mongodb]
[mniam] is used to access as a access layer which means no async on init, simple configuration and
seamless connection sharing if your app is using DB
mniam-store is compatible with [express-session] middleware
## Installation
$ npm install mniam-store
## Options
- `db` existing database created with mniam (can be shared with other parst of the app)
- `collection` name of the mongo collection to keep sessions in (default: sessions)
- `maxAge` - (seconds) specifies how long sessions should stay in DB - should be set-up to a value slightly larger than `cookie.maxAge` - defaults to 1 day
## Usage
Similar to other connect [session][] stores.
```javascript
var connect = require('connect');
var mniam = require('mniam');
var MniamStore = require('mniam-store')(connect);
// use DB for mniam store only or share it with other parts of the app
var db = mniam.db('mongourl://localhost/database');
connect().use(connect.session({
store: new MniamStore({
db: db
})
}));
```
## Upgrading from 0.x
Since `mniam-store` is using [mongo TTL index](http://docs.mongodb.org/manual/core/index-ttl/) sessions created with
previous versions will not expire automatically. We need to time stamp old sessions after the upgrade:
```javascript
db.sessions.update(
{_mod: {$exists:0}},
{$currentDate:{_mod:true}},
{multi:true}
);
```
And drop old index in `expires`:
```javascript
db.sessions.dropIndex({expires:1});
```
# License
MIT
[express]: http://expressjs.com
[mongodb]: http://www.mongodb.org
[connect]: http://www.senchalabs.org/connect
[session]: http://www.senchalabs.org/connect/session
[mniam]: https://www.npmjs.com/package/mniam
[express-session]: https://www.npmjs.com/express-session
[npm-image]: https://img.shields.io/npm/v/mniam-store
[npm-url]: https://npmjs.org/package/mniam-store
[build-url]: https://github.com/pirxpilot/mniam-store/actions/workflows/check.yaml
[build-image]: https://img.shields.io/github/actions/workflow/status/pirxpilot/mniam-store/check.yaml?branch=main
[deps-image]: https://img.shields.io/librariesio/release/npm/mniam-store
[deps-url]: https://libraries.io/npm/mniam-store