An open API service indexing awesome lists of open source software.

https://github.com/attestate/better-sqlite3-session-store

A better-sqlite3 session store for express-session.
https://github.com/attestate/better-sqlite3-session-store

better-sqlite3 expressjs session sqlite3

Last synced: about 1 year ago
JSON representation

A better-sqlite3 session store for express-session.

Awesome Lists containing this project

README

          

# better-sqlite3-session-store

[![npm version](https://badge.fury.io/js/better-sqlite3-session-store.svg)](https://badge.fury.io/js/better-sqlite3-session-store) [![workflow status](https://github.com/TimDaub/better-sqlite3-session-store/workflows/Node.js%20CI/badge.svg)](https://github.com/TimDaub/better-sqlite3-session-store/workflows/Node.js%20CI/badge.svg)

> **better-sqlite3-sessions-store** provides a
> [better-sqlite3](https://github.com/JoshuaWise/better-sqlite3/) session
> storage for [express-session](https://github.com/expressjs/session).

## Install

```bash
$ npm i --save better-sqlite3-session-store
```

## Usage

```js
const sqlite = require("better-sqlite3");
const session = require("express-session")

const SqliteStore = require("better-sqlite3-session-store")(session)
const db = new sqlite("sessions.db", { verbose: console.log });

app.use(
session({
store: new SqliteStore({
client: db,
expired: {
clear: true,
intervalMs: 900000 //ms = 15min
}
}),
secret: "keyboard cat",
resave: false,
saveUninitialized: false,
})
)
```

## License

See [License](./LICENSE).

## Changelog

### 0.1.0

- Use correct temporal unit for express's `cookie.maxAge` (it's milliseconds)
- Make calling `cb` function parameter safe
- (breaking) Remove TypeScript support

### 0.0.3

- Add TypeScript support
- Add (optional) `all` method

### 0.0.2

- Bug fix: For almost all Store methods, when an error was caught, their
execution wasn't stopped with e.g. a `return` statement

### 0.0.1

- Release initial version

## Inspiration

To build this library, I looked at other session stores:

- [connect-sqlite3](https://github.com/rawberg/connect-sqlite3)
- [connect-redis](https://github.com/tj/connect-redis/)