Javascript 每个请求嵌套新的HttpService
我有以下全局HTTP模块Javascript 每个请求嵌套新的HttpService,javascript,node.js,nestjs,Javascript,Node.js,Nestjs,我有以下全局HTTP模块 import { Global, HttpModule, Module, HttpService } from '@nestjs/common'; @Global() @Module({ imports: [HttpModule.register({ timeout: 7000, })], exports: [HttpModule], providers: [] }) export class HttpGlobalMod
import { Global, HttpModule, Module, HttpService } from '@nestjs/common';
@Global()
@Module({
imports: [HttpModule.register({
timeout: 7000,
})],
exports: [HttpModule],
providers: []
})
export class HttpGlobalModule {
}
这是一个为其他模块注入HTTP服务的HTTP模块,我将执行以下操作:
我希望此模块为每个请求提供新的HTTP服务
我面临的问题:
当我尝试在providers数组中添加HTTP服务时,收到以下错误:
Nest can't resolve dependencies of the HttpService (?). Please make sure that the argument AXIOS_INSTANCE_TOKEN at index [0] is available in the HttpGlobalModule context.
Potential solutions:
- If AXIOS_INSTANCE_TOKEN is a provider, is it part of the current HttpGlobalModule?
- If AXIOS_INSTANCE_TOKEN is exported from a separate @Module, is that module imported within HttpGlobalModule?
非常感谢您提供的任何帮助。我真的很好奇,为什么每个请求都需要一个新的Http服务实例?通常,这被认为是一种反模式,因为它会在您的服务中产生大量开销,如果不清理实例,可能会导致大量内存泄漏。我认为这是一个可以解决的问题,我只是好奇,如果这是你想要完成的事情的创可贴?如果可以,我很乐意帮忙:)您好,谢谢您的评论,实际上我正在努力防止我的应用程序中出现另一个问题我正在使用Axios interceptor修改所有出站请求的头并记录这些请求,要使用Axios interceptor,您必须使用Axios ref作为HTTP实例,因此,当我部署到lambda Axios interceptor manager时,会不断将新的处理程序推送到请求处理程序数组中,这会导致我的应用程序在第二个请求中失败并返回500,因此我认为这与serverless使用同一实例从而冻结它的想法有关。注意:这不会发生本地也是如此,我正在为所有路由使用中间件中的拦截器/你知道如何避免这种情况吗,我真的需要帮助你在Github上有这段代码吗,或者在我可以查看的地方?我有一些想法,但我需要更多关于你的项目是如何设置的背景。