Session

因为HTTP协议本身是无状态的,session 提供了一种保存用户请求信息的途径。

配置

session 的配置位于 src/config/session.js

  • store: session 的存储介质,默认 cookie, 可选 cookieredis
  • key: 当 storecookie 时,session 保存的 key
  • maxAge: session 的最大过期时间,默认 8640000
  • httpOnly: 是否 httponly,默认 true
  • signed: 是否加签,默认 true
  • autoCommit: 是否自动提交,默认 true
  • connection: 当 storeredis 的时候,使用哪个连接配置(src/config/database.js)

操作 Session

获取 Session 变量

request.session().get('key')
1

获取 Session 变量,不存在时返回默认值

request.session().get('key', 'default')
1

存储 Session 变量

request.session().set('key', 'value')
1

判断 Session 变量是否存在

request.session().has('key')
1

删除一个 Session 变量

request.session().remove('key')
1

删除所有 Session 变量

request.session().flush()
1

Session 闪存

Session 闪存功能可以将部分 Session 保存到下次请求为止

request.session().flash('key', 'value')
1

使用 Redis

将配置文件的 store 设置为 redis 并且配置对应的 connection 即可

module.exports = {
  // ...
  store: 'redis'
  // ...
  connection: 'session'
  //...
}
1
2
3
4
5
6
7

TIP

connectionsrc/config/database.js 中的 redis 的属性