session-file-store
Session file store for Express and Connect. Also you can use it with Koa
Session file store is a provision for storing session data in the session file
Compatibility
- Supports Express
>= 4.x
and Connect>= 1.4.0
through express-session - Supports Node.js
>= 4
- Indirectly supports Koa
>= 0.9.0
through express-session
Getting Started
Installation
$ npm install session-file-store
Running Tests
$ npm install
$ npm test
Options
-
path
The directory where the session files will be stored. Defaults to./sessions
-
ttl
Session time to live in seconds. Defaults to3600
-
retries
The number of retries to get session data from a session file. Defaults to5
-
factor
The exponential factor to use for retry. Defaults to1
-
minTimeout
The number of milliseconds before starting the first retry. Defaults to50
-
maxTimeout
The maximum number of milliseconds between two retries. Defaults to100
-
reapIntervalObject
[OUT] Contains intervalObject if reap was scheduled -
reapInterval
Interval to clear expired sessions in seconds or -1 if do not need. Defaults to1 hour
-
reapAsync
use distinct worker process for removing stale sessions. Defaults tofalse
-
reapSyncFallback
reap stale sessions synchronously if can not do it asynchronously. Default tofalse
-
logFn
log messages. Defaults toconsole.log
-
fallbackSessionFn
returns fallback session object after all failed retries. No defaults -
secret
if secret string is specified then enables encryption of the session before writing the file and also decryption when reading it. -
encryptEncoding
Encryption output encoding. Defaults to'hex'
-
encoding
Object-to-text text encoding. Can be null. Defaults to'utf8'
-
encoder
Encoding function. Takes object, returns encoded data. Defaults toJSON.stringify
-
decoder
Decoding function. Takes encoded data, returns object. Defaults toJSON.parse
-
fileExtension
File extension of saved files. Defaults to'.json'
-
keyFunction
Encryption key retrieval function. Takes secret and session id, returns key. Defaults tofunction(secret, sessionId){return secret + sessionId;}
Usage
Express or Connect integration
Due to express >= 4
changes, we need to pass express-session
to the function session-file-store
exports in order to extend session.Store
:
var session = require('express-session');
var FileStore = require('session-file-store')(session);
app.use(session({
store: new FileStore(options),
secret: 'keyboard cat'
}));
Examples
You can found basic work app examples
for express,
connect and
koa frameworks in examples
folder.