connect-neo4j provides Neo4j session storage for Express. Requires neo4j-driver >= 4.3.0
.
npm:
npm install neo4j-driver connect-neo4j express-session express
Yarn:
yarn add neo4j-driver connect-neo4j express-session express
const express = require('express')
const session = require('express-session')
const neo4j = require('neo4j-driver')
const uri = process.env.NEO4J_URI || 'bolt://localhost:7687'
const user = process.env.NEO4J_USER || 'neo4j'
const password = process.env.NEO4J_PASSWORD || 'neo4j'
const driver = neo4j.driver(uri, neo4j.auth.basic(user, password))
var app = express()
let Neo4jStore = require('connect-neo4j')(session)
app.use(
session({
store: new Neo4jStore({ client: driver }),
saveUninitialized: false,
secret: 'keyboard cat',
resave: false,
})
)
app.listen(3000)
The Neo4jStore
requires an existing client. Any clients compatible with the API will work. See client
option for more details.
let options = { // Defaults (excluding client)
prefix: "sess:", //optional
serializer: JSON, // optional, but must provide methods parse & stringify
client: driver, // required, neo4j-driver
nodeLabel: 'Session', //Optional, what to label you session nodes
ttl: 86400, // Optional, set a default ttl (time to live).
disableTTL: false, //Optional, Disables TTL functionallity
disableTouch: false, // Optional, Disables Touch functionallty
}
let store = new Neo4jStore({ options ) })
The encoder/decoder to use when storing and retrieving session data from Neo4j (default: JSON
).
interface Serializer {
parse(string): object
stringify(object): string
}