前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nest.js 实战 (六):使用 Session 在不同请求间存储信息

Nest.js 实战 (六):使用 Session 在不同请求间存储信息

原创
作者头像
白雾茫茫丶
发布2024-08-01 14:19:06
1200
发布2024-08-01 14:19:06
举报
文章被收录于专栏:Nest.js 实战系列

前言

Session 是记录客户状态的机制,为每个用户的浏览器创建的一个会话对象,今天我们来看一下怎么在 Nest.js 中使用 Session

安装依赖

代码语言:powershell
复制
pnpm add express-session
pnpm add @types/express-session -D

全局配置

安装完成后,在 main.ts 中将 express-session 配置为全局中间件:

代码语言:ts
复制
import session from 'express-session';

// 配置 session
app.use(
  session({
    secret: 'baiwumm', // 签名
    resave: false, // 强制保存 sseion 即使它并没有变化,默认为true
    saveUninitialized: false, // 强制将未初始化的 session 存储
  }),
);

参数说明

属性

类型

默认值

是否必填

描述

secret

string

-

用于加密 session ID 的秘密字符串。强烈建议使用一个足够长且随机的字符串

resave

boolean

true

是否在每次请求时保存 session,即使 session 没有更改。通常设置为 false 以提高性能

saveUninitialized

boolean

true

是否为尚未初始化的 session 创建新的 session 对象。通常设置为 false 以避免不必要的数据库写入

name

string

connect.sid

设置 session ID 的名称

更多参数请参考:Api 文档

使用方式

1、 使用 @Req 修饰器:

代码语言:ts
复制
 import { Controller, Get, Res } from '@nestjs/common';
 import { Request } from 'express';

 @Get()
 findAll(@Req() req: Request) {
   req.session.username = 'admin';
 }

2.、 使用 @Session 修饰器:

代码语言:ts
复制
 import { Controller, Get, Session } from '@nestjs/common';
 import { Request } from 'express';

 @Get()
 findAll(@Session() session: SessionInfo) {
  session.username = 'admin';
 }

常用方法

1、 设置会话数据:

代码语言:ts
复制
 session.userName = 'admin'

2、 获取会话数据:

代码语言:ts
复制
 session.userName // admin

3、 删除会话数据

代码语言:ts
复制
 delete session.userName; 

4、 销毁整个会话

代码语言:ts
复制
 session.destroy();

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 安装依赖
  • 全局配置
  • 参数说明
  • 使用方式
  • 常用方法
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档