express-session-sqlite

SQLite-backed session store for express-session written in Typescript

Usage no npm install needed!

<script type="module">
  import expressSessionSqlite from 'https://cdn.skypack.dev/express-session-sqlite';
</script>

README

express-session-sqlite

npm version built with typescript JavaScript Style Guide CircleCI

A session store for express-session using SQLite.

Fully unit tested. PRs welcomed.

Install

$ npm i express-session-sqlite sqlite3 --save

Usage

import * as sqlite3 from 'sqlite3'
import * as express from 'express'
import * as session from 'express-session'
import sqliteStoreFactory from 'express-session-sqlite'

const SqliteStore = sqliteStoreFactory(session)
const app = express()

app.use(session({
    store: new SqliteStore({
      // Database library to use. Any library is fine as long as the API is compatible
      // with sqlite3, such as sqlite3-offline
      driver: sqlite3.Database,
      // for in-memory database
      // path: ':memory:'
      path: '/tmp/sqlite.db',
      // Session TTL in milliseconds
      ttl: 1234,
      // (optional) Session id prefix. Default is no prefix.
      prefix: 'sess:',
      // (optional) Adjusts the cleanup timer in milliseconds for deleting expired session rows.
      // Default is 5 minutes.
      cleanupInterval: 300000
    }),
    //... don't forget other expres-session options you might need
}))

Debugging

This module uses debug under the name express-session-sqlite. When starting up your app, do the following:

$ DEBUG=express-session-sqlite node app.js