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.
- Host: GitHub
- URL: https://github.com/attestate/better-sqlite3-session-store
- Owner: attestate
- License: gpl-3.0
- Created: 2020-11-19T13:10:27.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-25T14:58:02.000Z (over 3 years ago)
- Last Synced: 2024-11-05T01:49:37.318Z (over 1 year ago)
- Topics: better-sqlite3, expressjs, session, sqlite3
- Language: JavaScript
- Homepage:
- Size: 96.7 KB
- Stars: 19
- Watchers: 3
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# better-sqlite3-session-store
[](https://badge.fury.io/js/better-sqlite3-session-store) [](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/)