gpt4 book ai didi

javascript - 请求范围的服务

转载 作者:搜寻专家 更新时间:2023-10-30 20:58:36 24 4
gpt4 key购买 nike

据我了解,现在 nestjs 在应用程序启动时创建所有服务,也许我用错了有没有办法配置 NestJs 以根据请求创建服务?就像每次完成请求时都会重新创建在该请求上使用的一些服务?

最佳答案

随着 nest.js 6.0 的发布,injection scopes添加。有了这个,您可以为您的提供商选择以下三个范围之一:

  • SINGLETON:默认行为。您的提供商的一个实例用于整个应用程序
  • TRANSIENT:为注入(inject)它的每个提供者创建一个提供者的专用实例。
  • REQUEST:对于每个请求,都会创建一个新的提供者。

⚠️ 注意:注入(inject)作用域会在你的依赖链中冒泡。 ⚠️

示例:如果 UsersController(单例范围)注入(inject) UsersService(单例范围)注入(inject) OtherService(请求范围),则两者 UsersControllerUsersService 将自动成为请求范围的。

用法

要么将它添加到 @Injectable() 装饰器中:

@Injectable({ scope: Scope.REQUEST })
export class UsersService {}

或者在您的模块定义中为自定义提供者设置它:

{
provide: 'CACHE_MANAGER',
useClass: CacheManager,
scope: Scope.TRANSIENT,
}

关于javascript - 请求范围的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53450075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com