如何使用不同的配置在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-供应商使用工厂

最新更新