推荐答案
-- -------------------- ---- ------- ----- ------- - -------------------- ------- ---- --- ----- -------------- - --------------------------- ----- ------------- - -------------------------- -- -- -------------- -- -------------------------------- -- -- --------------- -- -------------------------------- - ------- ------------------------------------------- ------- - ------- ------ -- -- ----- ---- ---- ------- ----- -- ---------- - --- -- ----------- --------------------------- --------- ------ -- - -------------------- - - --- -- ----- ----- ---- -- ------------------- ---- ------ --- -- ----------- --------------------------- --------- ------ -- - ----- ---- - --------------------- --------------- -- --- ------- ---- -------- --- -- ----- -------------------- ----- -- - -- ----- - ----------------------- ---------------- - ------------------------ --------- -- ------------------------ ---
本题详细解读
1. 安装依赖
首先,你需要安装 fastify-session
和 fastify-cookie
插件:
npm install fastify-session fastify-cookie
2. 注册插件
在 Fastify 应用中,你需要先注册 fastify-cookie
插件,因为 fastify-session
依赖于它来处理会话的存储和读取。
fastify.register(fastifyCookie);
接下来,注册 fastify-session
插件,并配置会话的密钥和 Cookie 选项:
fastify.register(fastifySession, { secret: 'a-secret-key-with-at-least-32-characters', cookie: { secure: false, // 仅在 HTTPS 下设置为 true maxAge: 86400 // 会话有效期,单位为秒 } });
3. 设置会话数据
在路由处理函数中,你可以通过 request.session
对象来设置会话数据。例如:
fastify.get('/set-session', (request, reply) => { request.session.user = { id: 1, name: 'John Doe' }; reply.send('Session data set'); });
4. 获取会话数据
你可以通过 request.session
对象来获取会话数据。例如:
fastify.get('/get-session', (request, reply) => { const user = request.session.user; reply.send(user || 'No session data found'); });
5. 启动服务器
最后,启动 Fastify 服务器并监听端口:
fastify.listen(3000, (err) => { if (err) { fastify.log.error(err); process.exit(1); } fastify.log.info('Server listening on http://localhost:3000'); });
通过以上步骤,你就可以在 Fastify 应用中使用 fastify-session
插件来处理会话了。