我有一个正常的雀巢申请。我在里面有几个API。最近,我注意到当我用邮递员测试他们时,他们的反应被缓存了。
就像。
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-2,它返回上一个API-1的响应。

发布于 2020-05-05 08:39:54
@Controller({path: "product",scope: Scope.REQUEST})我想这就是问题所在。因为节点是单线程的,所以它没有处理我以前的实例,而是一次又一次地使用相同的响应变量。所以我的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"}
}从而获得了前一个请求的第三个数据键。
理想情况下,这种情况不应发生。但在应用了范围之后它就被解决了。
https://docs.nestjs.com/fundamentals/injection-scopes
控制器也可以具有作用域,适用于该控制器中声明的所有请求方法处理程序。与提供程序作用域一样,控制器的作用域声明其生存期。对于请求作用域控制器,为每个入站请求创建一个新实例,并在请求完成处理后进行垃圾收集。
https://stackoverflow.com/questions/61608111
复制相似问题