【发布时间】:2022-07-06 23:15:23
【问题描述】:
我正在尝试像这样创建一个数据库模块:
const dbProvider = {
provide: 'DB',
useFactory: async (configService:ConfigService) => {
const dbUrl = configService.get<string>('DB_URL')
return Knex({
client: 'pg',
connection: dbUrl
})
},
inject: [ConfigService]
}
@Module({
providers: [ConfigService, dbProvider],
exports: [dbProvider],
})
export class DbModule {}
问题在于配置服务需要异步获取 DB_URL 参数(来自 AWS 秘密存储)。
数据库设置完成后,配置仍未加载(稍后会发生)。 这是 AppModule 的定义:
@Module({
controllers: [AppController],
providers: [Logger, AppService, {
provide: ConfigService,
useFactory: getConfigFactory(['DB_URL']),
}],
exports: [ConfigService]
})
export class AppModule {}
有没有正确的 Nestjs 方法来实现这样的功能?
【问题讨论】:
标签: asynchronous nestjs config