nestjs - 如何使用不同的配置多次初始化nestjs模块?

标签 nestjs

如何创建一个 Nestjs 模块的两个或多个实例?例如。我们希望有两个不同的 TwilioModule 实例并为它们使用不同的配置。

import { TwilioModule } from 'nestjs-twilio';

@Module({
  imports: [
    TwilioModule.forRootAsync({
      imports: [ConfigModule],
      useFactory: async (cfg: ConfigService) => ({
        accountSid: cfg.get('TWILIO_ACCOUNT_SID'),
        authToken: cfg.get('TWILIO_AUTH_TOKEN'),
      }),
      inject: [ConfigService],
    }),
    TwilioModule.forRootAsync({
      imports: [ConfigModule],
      useFactory: async (cfg: ConfigService) => ({
        accountSid: cfg.get('TWILIO_ACCOUNT_SID_2'),
        authToken: cfg.get('TWILIO_AUTH_TOKEN_2'),
      }),
      inject: [ConfigService],
    }),
  ],
})
export class AppModule {}

最佳答案

嘿,为此,软件包需要具有此功能。 我推荐这个。

import { Twilio } from 'twilio';
providers: [
 {
  provide: 'twilio1',
  useFactory: () => {
    return new Twilio('ACasd', 'wasdsa');
  },
},
{
  provide: 'twilio2',
  useFactory: () => {
    return new Twilio('ACasd', 'wasdsa');
  },
},
]



Use the following in the controller or in service

@Inject("twilio1") t1 : Twilio

示例:-

constructor(@Inject('twilo1') t1: Twilio) {}

了解更多@https://docs.nestjs.com/fundamentals/custom-providers#factory-providers-usefactory

关于nestjs - 如何使用不同的配置多次初始化nestjs模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68391191/

相关文章:

javascript - 区分 Controller 的 2 条路由(NestJS)

typescript - 类型错误 : Converting circular structure to JSON --> starting at object with constructor 'ClientRequest'

javascript - NestJs:无法读取模块文件中的环境变量,但可以读取服务文件中的环境变量?

javascript - 使用@UploadFile上传文件期间接收到的对象类型

nestjs - 禁止 Nestjs 中 DTO 的特定枚举值

node.js - API Controller : Cannot PUT,无法删除(404未找到)

nestjs - 如何使用fastify在nestjs中设置响应头

nestjs - 嵌套js中的DTO,接口(interface)和模式有什么区别

node.js - 无法生成迁移

node.js - 如何使用拦截器访问 nestjs 中的最终 GraphQL-Response