简介
koa-generic-session-mongo
是一个基于 koa-generic-session
的 MongoDB 存储实现。
koa-generic-session
是一个基于 koa-session
的通用 Session 中间件,适用于所有的 koa 托管 Web 服务器。对于 MongoDB 版本安装和使用有比较多的坑,本教程将详细介绍使用方法。
安装
首先需要安装 koa
、koa-generic-session
和 koa-generic-session-mongo
三个包。
npm install --save koa koa-generic-session koa-generic-session-mongo
然后,由于本中间件是基于 MongoDB 进行存储,所以还需要安装 mongodb
。
npm install --save mongodb
使用方法
-- -------------------- ---- ------- ----- --- - -------------- ----- ------- - ------------------------------ ----- ------------ - ------------------------------------ ----- --- - --- ----- -------- - ----------- ---------- ----------------- ------ --- -------------- ---- --------------------------------- --------------- ---------- -- --- ------------- ----- ----- -- - ----- ----- - ----------------- -- - ----------------- - ----- - - -------- - -------- ------ --------------------- -- ---------------- -- -- - ------------------- -- ------- -- ----------------------- --
上面的代码中,app.keys
是 Koa 的密钥数组,用于加密 session。store
是使用 MongoDB 的 store。
ctx.session
存储着 session 数据,当访问 /
路径时,中间件会自动从 session 中读取 count
值,如果不存在则初始化为 0。然后把 count + 1
的值存回 session 中,并返回页面上。
配置项
koa-generic-session-mongo
的配置项如下:
url
:MongoDB 数据库连接 URL。dbName
:MongoDB 数据库名称。collectionName
:MongoDB 存储 session 的集合名称,默认值为'sessions'
。ttl
:session 的过期时间,单位为秒,默认值为86400
,即 24 小时。retryInterval
:连接失败时的重试时间间隔,单位为毫秒,默认值为5000
。retryTimes
:连接失败时的重试次数,默认值为3
。reconnectTries
:MongoDB 重连次数,默认值为30
。reconnectInterval
:MongoDB 重连时间间隔,默认值为1000
。touchAfter
:设置多长时间后 session 重新“触发”(也就是用户又进来了),单位为秒,默认值为0
。
总结
本文介绍了 koa-generic-session-mongo
的安装和使用方法。通过使用 MongoDB 存储 session,我们可以在分布式环境下共享 session 数据,从而保证了系统的可扩展性和可靠性。本包也提供了比较多的配置项,可以根据实际情况进行调整。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f2bec133b0ab45f74a8bb7f