A session store for express-session using the db driver better-sqlite3
Express-session uses the internal memory as its default store for sessions. This is not recommended in a production environment.
If you use SQLite as your database and better-sqlite3 as your database driver then this module easily lets you store your sesions in the db.
You need to have installed express, express-session and better-sqlite3 first:
npm i express
npm i express-session
npm i better-sqlite3
Then you install better-express-store:
npm i better-express-store
This is an example of how you use this module:
const express = require('express');
const session = require('express-session');
const store = require('better-express-store');
const app = express();
// When setting up express session
app.use(session({
secret: 'your own secret',
resave: false,
saveUninitialized: true,
cookie: { secure: 'auto' },
// change dbPath to the path to your database file
store: store({ dbPath: './db/my-db.db'})
}));
// Set up other middleware and start your server...
Apart from your dbPath there are also other settings you can adjust.
The settings (listed together with their default values):
{
dbPath: false, // no default - needs to specified
tableName: 'sessions',
deleteAfterInactivityMinutes: 120, // 0 = never delete
}