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