DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/session-file-store package

    1.5.0 • Public • Published


    Session file store for Express and Connect. Also you can use it with Koa

    NPM Version NPM Downloads Node.js Version Build Status Coverage Status

    Session file store is a provision for storing session data in the session file


    Getting Started


    $ npm install session-file-store

    Running Tests

    $ npm install
    $ npm test


    • path The directory where the session files will be stored. Defaults to ./sessions
    • ttl Session time to live in seconds. Defaults to 3600
    • retries The number of retries to get session data from a session file. Defaults to 5
    • factor The exponential factor to use for retry. Defaults to 1
    • minTimeout The number of milliseconds before starting the first retry. Defaults to 50
    • maxTimeout The maximum number of milliseconds between two retries. Defaults to 100
    • reapIntervalObject [OUT] Contains intervalObject if reap was scheduled
    • reapInterval Interval to clear expired sessions in seconds or -1 if do not need. Defaults to 1 hour
    • reapAsync use distinct worker process for removing stale sessions. Defaults to false
    • reapSyncFallback reap stale sessions synchronously if can not do it asynchronously. Default to false
    • logFn log messages. Defaults to console.log
    • fallbackSessionFn returns fallback session object after all failed retries. No defaults
    • encoding Object-to-text text encoding. Can be null. Defaults to 'utf8'
    • encoder Encoding function. Takes object, returns encoded data. Defaults to JSON.stringify
    • decoder Decoding function. Takes encoded data, returns object. Defaults to JSON.parse
    • fileExtension File extension of saved files. Defaults to '.json'
    • secret Enables transparent encryption support conforming to OWASP's Session Management best practices.
    • crypto.algorithm Defaults to aes-256-gcm but supports symmetric algorithms listed from crypto.getCiphers().
    • crypto.hashing Defaults to sha512 but supports hashing algorithms listed from crypto.getHashes().
    • crypto.use_scrypt Defaults to true. When not supported (node < 10.5) will fall back to the crypto.pbkdf2() key derivation function.


    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);
    var fileStoreOptions = {};
        store: new FileStore(fileStoreOptions),
        secret: 'keyboard cat'


    You can find basic work app examples for express, connect and koa frameworks in examples folder.


    npm i session-file-store

    DownloadsWeekly Downloads






    Unpacked Size

    22.3 kB

    Total Files


    Last publish


    • avatar