介绍
sessions-provider-mongodb 是一个基于 MongoDB 存储的 express-session 的 session 存储后端。
安装
通过 npm 安装 sessions-provider-mongodb:
npm install sessions-provider-mongodb
使用
在 Express 应用中,需要先引入 express-session 和 sessions-provider-mongodb:
const session = require('express-session'); const MongoDBStore = require('sessions-provider-mongodb')(session);
初始化 store
使用 MongoDBStore(options) 函数初始化 store,其中 options 如下:
- url: MongoDB 的连接地址。
- collection: sessions 存储的集合名称,默认为 'sessions'。
- ttl: session 的过期时间,单位为秒,默认为 86400。
- touchAfter: 重复访问 session 需要更新到数据库的时间差,单位为秒,默认为 300。
示例代码:
const store = new MongoDBStore({ url: 'mongodb://localhost:27017', collection: 'sessions', ttl: 86400, touchAfter: 300 });
放置 session 中间件
将 session 中间件放在其他中间件之前,以实现 session 功能。
app.use(session({ store: store, secret: 'your secret key', resave: false, saveUninitialized: false }));
其中:
- store: 初始化的 MongoDBStore 对象。
- secret: session 的签名密钥。
- resave: 每次请求是否强制更新到 session 存储中。
- saveUninitialized: 是否自动创建一个 session 存储。
取出 session 数据
使用 req.session 来获取当前请求的 session 数据,例如:
app.get('/', function(req, res) { const name = req.session.name; res.send(`Hello, ${name}`); });
设置 session 数据
使用 req.session 来设置当前请求的 session 数据,例如:
app.post('/', function(req, res){ req.session.name = req.body.name; res.send(`Hello, ${req.session.name}`); });
总结
sessions-provider-mongodb 是一个非常方便的 Express session 存储后端,通过上述教程,你已经能够熟练使用它了。在实际开发中,你也可以将 sessions-provider-mongodb 和其他数据库存储方案结合使用,以满足不同的业务需求。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005603e81e8991b448de6ca