推荐答案
在 Express 中使用 Cookie 和 Session 可以通过以下步骤实现:
使用 Cookie
安装
cookie-parser中间件:npm install cookie-parser
在 Express 应用中引入并使用
cookie-parser:const express = require('express'); const cookieParser = require('cookie-parser'); const app = express(); app.use(cookieParser());设置和读取 Cookie:
// www.javascriptcn.com code example app.get('/set-cookie', (req, res) => { res.cookie('username', 'john_doe', { maxAge: 900000, httpOnly: true }); res.send('Cookie has been set'); }); app.get('/get-cookie', (req, res) => { const username = req.cookies.username; res.send(`Username from cookie: ${username}`); });
使用 Session
安装
express-session中间件:npm install express-session
在 Express 应用中引入并使用
express-session:const session = require('express-session'); app.use(session({ secret: 'your_secret_key', resave: false, saveUninitialized: true, cookie: { secure: false } // 设置为 true 时仅适用于 HTTPS }));设置和读取 Session:
// www.javascriptcn.com code example app.get('/set-session', (req, res) => { req.session.username = 'john_doe'; res.send('Session has been set'); }); app.get('/get-session', (req, res) => { const username = req.session.username; res.send(`Username from session: ${username}`); });
本题详细解读
Cookie 的使用
cookie-parser中间件:用于解析请求中的 Cookie,并将其挂载到req.cookies对象上。- 设置 Cookie:通过
res.cookie(name, value, [options])方法设置 Cookie。options可以包含maxAge(有效期)、httpOnly(是否仅通过 HTTP 访问)等。 - 读取 Cookie:通过
req.cookies对象访问客户端发送的 Cookie。
Session 的使用
express-session中间件:用于管理用户会话。它会在服务器端存储会话数据,并为每个用户生成一个唯一的会话 ID,存储在客户端的 Cookie 中。- 设置 Session:通过
req.session对象设置会话数据。例如,req.session.username = 'john_doe'。 - 读取 Session:通过
req.session对象访问会话数据。例如,req.session.username。
注意事项
- 安全性:在生产环境中,应使用 HTTPS 并设置
secure: true来确保 Cookie 和 Session 的安全性。 - 存储:默认情况下,
express-session将会话数据存储在内存中。对于生产环境,建议使用外部存储(如 Redis)来持久化会话数据。