nest开发:四 控制器+seesion

113 阅读1分钟

一、为方便获取前端传过来的参数,nestjs提供了方法参数装饰器 用来帮助我们快速获取参数

例如下图 QQ截图20230306225451.png 参考(69条消息) 小满nestjs(第八章 nestjs 控制器)_小满zs的博客-CSDN博客

二、seesion

一、安装express-session依赖,@types/express-session声明文件
GitHub文档github.com/expressjs/s…

npm i express-session --save
npm i @types/express-session -D

二、安装好后在main.ts引入

import * as session from 'express-session'

三、使用

app.use(session({ secret: "yui", name: "yui.sid", rolling: true, cookie: { maxAge: null } }))

rolling和cookie的maxAge
rolling 强制在每个响应上设置会话标识符。过期时间被重置为原来的maxAge,重新设置过期倒计时。
默认值是false。
启用这个功能后,会话标识符将在自最后一次发送响应以来的最大年龄段过期,而不是在自服务器最后一次修改会话以来的最大年龄段过期。
这通常与短的、非会话长度的maxAge值一起使用,以提供会话数据的快速超时,减少在持续的服务器交互中发生的可能性。
注意 当这个选项被设置为 "true",但saveUninitialized选项被设置为 "false "时,cookie将不会被设置在一个未初始化会话的响应中。这个选项只修改了为请求加载现有会话时的行为。

axios自行配置携带cookie

axios.defaults.withCredentials = true

网页发送请求后会种植cookie

cookie种植.png 发送请求nest获取seesion

携带cookie请求.png