【问题标题】:How to initialize on nestjs module multiple times with different configurations?如何使用不同的配置多次初始化nestjs模块?
【发布时间】:2021-07-15 09:23:30
【问题描述】:

如何创建一个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 {}

【问题讨论】:

    标签: nestjs


    【解决方案1】:

    嘿,这个包需要有这个功能。 我推荐这个。

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 2019-11-09
      • 2017-09-16
      • 2010-09-10
      • 2019-09-04
      • 1970-01-01
      相关资源
      最近更新 更多