本文介绍了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()异步的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-17 17:52