本文介绍了nestjs ConfigModule.forRoot()异步的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使用睡觉接口从配置服务器加载Nestjs中的配置,以实现应用程序的集中配置。但是,ConfigModule.forRoot()函数没有异步版本,因此配置返回为undefined
。
有什么办法可以解决这个问题吗?
推荐答案
通过创建返回Nest ConfigService对象的工厂函数解决
// config-factory.ts
import { ConfigService } from '@nestjs/config'
import axios from 'axios'
export async function getConfigService() {
const host = ...
const port = ...
const configUrl = `http://${host}:${port}/config`
const postData = ...
const response = await axios.post<Record<string, any> | undefined>(configUrl, postData)
return new ConfigService(response.data)
}
@Global()
@Module({
controllers: [],
providers: [
{
provide: ConfigService,
useFactory: getConfigService,
},
],
exports: [ConfigService],
})
export class AppModule {}
这篇关于nestjs ConfigModule.forRoot()异步的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!