首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁用NestJs缓存API响应

如何禁用NestJs缓存API响应
EN

Stack Overflow用户
提问于 2020-05-05 07:42:04
回答 1查看 3.2K关注 0票数 1

我有一个正常的雀巢申请。我在里面有几个API。最近,我注意到当我用邮递员测试他们时,他们的反应被缓存了。

就像。

代码语言:javascript
复制
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的响应。

EN

回答 1

Stack Overflow用户

发布于 2020-05-05 08:39:54

代码语言:javascript
复制
@Controller({path: "product",scope: Scope.REQUEST})

我想这就是问题所在。因为节点是单线程的,所以它没有处理我以前的实例,而是一次又一次地使用相同的响应变量。所以我的API-1保存了一个名为RESPONSE的变量的响应。

在下一个请求中,API-2使用相同的变量响应。

反应变结构是这样的-

代码语言:javascript
复制
{
   status: bool,
   message: string,
   data: object
}

API-1将其修改为

代码语言:javascript
复制
{
   status: true,
   message: "Done",
   data: {"key":"value"}
}

然而,API-2只使用前两个键.

代码语言:javascript
复制
{
   status: true,
   message: "Not done",
   data: {"key":"value"}
}

从而获得了前一个请求的第三个数据键。

理想情况下,这种情况不应发生。但在应用了范围之后它就被解决了。

https://docs.nestjs.com/fundamentals/injection-scopes

控制器也可以具有作用域,适用于该控制器中声明的所有请求方法处理程序。与提供程序作用域一样,控制器的作用域声明其生存期。对于请求作用域控制器,为每个入站请求创建一个新实例,并在请求完成处理后进行垃圾收集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61608111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档