将值传递给 NestJS 服务
Pass value to a NestJS service
在我的 NestJS 应用程序中,我有一项服务用于执行与供应商的 HTTP 请求(充当该供应商的客户端库)。该服务需要一个 API 密钥,它可以作为环境变量 VENDOR_API_KEY
.
对于单元测试,我想为 API 键使用另一个硬编码值 - 而不是从 VENDOR_API_KEY
.
中获取它
惯用的做法是什么? https://docs.nestjs.com/fundamentals/custom-providers 中给出的所有选项似乎都有些矫枉过正。
我可能遗漏了一些明显的东西,因为我是 NestJS 的新手。
听起来您需要一个非常简单的自定义提供程序。快到
@Module({
providers: [
ServiceToBeUsed,
{
provide: 'API_KEY',
useValue: process.env.VENDOR_API_KEY, //you could also use a factory and inject the config service
}
]
})
export class SomeModule {}
现在您可以在服务的构造函数中使用 @Inject('API_KEY') private readonly apiKey: string
在我的 NestJS 应用程序中,我有一项服务用于执行与供应商的 HTTP 请求(充当该供应商的客户端库)。该服务需要一个 API 密钥,它可以作为环境变量 VENDOR_API_KEY
.
对于单元测试,我想为 API 键使用另一个硬编码值 - 而不是从 VENDOR_API_KEY
.
惯用的做法是什么? https://docs.nestjs.com/fundamentals/custom-providers 中给出的所有选项似乎都有些矫枉过正。
我可能遗漏了一些明显的东西,因为我是 NestJS 的新手。
听起来您需要一个非常简单的自定义提供程序。快到
@Module({
providers: [
ServiceToBeUsed,
{
provide: 'API_KEY',
useValue: process.env.VENDOR_API_KEY, //you could also use a factory and inject the config service
}
]
})
export class SomeModule {}
现在您可以在服务的构造函数中使用 @Inject('API_KEY') private readonly apiKey: string