将值传递给 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