Node.js 如何禁用NestJs缓存API响应
我有一个普通的NestJs应用程序。我有几个API在里面。最近,我注意到,当我使用Postman测试它们时,响应被缓存 例如Node.js 如何禁用NestJs缓存API响应,node.js,express,caching,nestjs,Node.js,Express,Caching,Nestjs,我有一个普通的NestJs应用程序。我有几个API在里面。最近,我注意到,当我使用Postman测试它们时,响应被缓存 例如 I hit API-1 ... it gives me a response. I hit API-2 ... it gives me the response plus the previous response. 有没有办法禁用此功能 提前谢谢 这是返回正常响应的API-1。 这是返回上一个API-1响应的API-2 我想这就是问题所在。由于节点是单线程的,所
I hit API-1 ... it gives me a response.
I hit API-2 ... it gives me the response plus the previous response.
有没有办法禁用此功能
提前谢谢
这是返回正常响应的API-1。
这是返回上一个API-1响应的API-2
我想这就是问题所在。由于节点是单线程的,所以它没有处理我以前的实例,而是一次又一次地使用相同的响应变量。因此,我的API-1将响应保存到一个名为response的变量
在下一个请求中,API-2使用了相同的变量响应
响应变量结构如下所示-
{
status: bool,
message: string,
data: object
}
API-1将其修改为
{
status: true,
message: "Done",
data: {"key":"value"}
}
然而,API-2只使用了前两个键
{
status: true,
message: "Not done",
data: {"key":"value"}
}
因此获得了前一个请求的第三个数据键
理想情况下,这不应该发生。但在应用范围问题之后,它得到了解决
控制器也可以有作用域,适用于所有请求方法
在该控制器中声明的处理程序。与提供者作用域一样,作用域
声明其生存期。对于作用域为
控制器,为每个入站请求创建一个新实例,以及
请求完成处理时收集的垃圾
我想这就是问题所在。由于节点是单线程的,所以它没有处理我以前的实例,而是一次又一次地使用相同的响应变量。因此,我的API-1将响应保存到一个名为response的变量
在下一个请求中,API-2使用了相同的变量响应
响应变量结构如下所示-
{
status: bool,
message: string,
data: object
}
API-1将其修改为
{
status: true,
message: "Done",
data: {"key":"value"}
}
然而,API-2只使用了前两个键
{
status: true,
message: "Not done",
data: {"key":"value"}
}
因此获得了前一个请求的第三个数据键
理想情况下,这不应该发生。但在应用范围问题之后,它得到了解决
控制器也可以有作用域,适用于所有请求方法
在该控制器中声明的处理程序。与提供者作用域一样,作用域
声明其生存期。对于作用域为
控制器,为每个入站请求创建一个新实例,以及
请求完成处理时收集的垃圾
你用的是什么版本的邮递员?你能用v7.23.0显示你认为它被缓存的地方吗。使用邮递员快照编辑。能否保存这两个选项卡并重试?您是复制了选项卡来创建它们,还是从头开始创建每个选项卡?您是否尝试在新选项卡中创建该请求?如果你打开邮递员控制台,你可以看到每次发送的信息,可能还有更多的信息。你在使用缓存模块吗?默认情况下,Nest不缓存数据或请求,即使使用缓存模块,也只缓存
GET
请求。您使用的是什么版本的Postman?你能用v7.23.0显示你认为它被缓存的地方吗。使用邮递员快照编辑。能否保存这两个选项卡并重试?您是复制了选项卡来创建它们,还是从头开始创建每个选项卡?您是否尝试在新选项卡中创建该请求?如果你打开邮递员控制台,你可以看到每次发送的信息,可能还有更多的信息。你在使用缓存模块吗?默认情况下,Nest不缓存数据或请求,即使使用缓存模块,也只缓存GET
请求。