缓存API响应"/>
如何禁用NestJs缓存API响应
我有一个正常的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-2,它返回以前的API-1的响应
回答如下:@Controller({path: "product",scope: Scope.REQUEST})
我认为这就是问题。由于节点是单线程的,因此它没有处置我的较早的实例,并且一次又一次地使用相同的响应变量。因此,我的API-1保存了对名为RESPONSE的变量的响应。
在下一个请求时,API-2使用了相同的变量RESPONSE。
RESPONSE变量结构是这样的-
{
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"}
}
因此获得了上一个请求的第三个data键。
理想情况下,这不会发生。但是在应用范围之后,它就解决了。
https://docs.nestjs/fundamentals/injection-scopes
控制器也可以具有范围,该范围适用于所有请求方法在该控制器中声明的处理程序。像提供者范围一样,范围控制器的寿命声明其寿命。对于请求范围控制器,为每个入站请求创建一个新实例,并且请求完成处理后,将进行垃圾收集。
更多推荐
如何禁用NestJs缓存API响应
发布评论