Express 面试题
目录

如何使用 express-session 中间件处理会话?

· 约 4 分钟读完 · 第 23 / 120 章

推荐答案

本题详细解读

1. 引入 express-session 中间件

首先,我们需要通过 require('express-session') 引入 express-session 中间件。这个中间件用于在 Express 应用中管理会话。

2. 配置 express-session

在 app.use(session({...})) 中,我们配置了 express-session 中间件。配置项包括:

  • secret: 用于签名会话 ID 的密钥。这个密钥应该是一个随机字符串,用于防止会话被篡改。
  • resave: 如果设置为 true,即使会话没有被修改,也会强制将会话保存回会话存储区。通常建议设置为 false。
  • saveUninitialized: 如果设置为 true,即使会话没有被初始化(即没有数据被存储),也会强制将未初始化的会话保存到存储区。通常建议设置为 true。
  • cookie: 用于配置会话 cookie 的选项。secure: true 时,cookie 仅通过 HTTPS 传输。

3. 设置会话数据

在 /set-session 路由中,我们通过 req.session.username = 'JohnDoe' 设置了会话数据。这个数据会被存储在服务器端,并且可以通过 req.session 对象在后续请求中访问。

4. 获取会话数据

在 /get-session 路由中,我们通过 req.session.username 获取之前设置的会话数据。如果会话中没有 username 数据,则默认返回 'Guest'。

5. 销毁会话

在 /destroy-session 路由中,我们通过 req.session.destroy() 销毁当前会话。销毁后,会话数据将被清除,用户需要重新登录或重新设置会话数据。

6. 启动服务器

最后,我们通过 app.listen(3000, ...) 启动服务器,监听 3000 端口。