Nest js ConfigModule: установка / переопределение значений в объекте конфигурации - PullRequest
0 голосов
/ 14 июля 2020

Я использую ConfigModule для получения конфигурации, используя custom load:

ConfigModule.forRoot({
  isGlobal: true,
  load: [defaultConfig]
}),

В моем defaultConfig я устанавливаю значения по умолчанию, если они отсутствуют в .env и / или в противном случае изменение значений:

export const defaultConfig = () => {
  return {
    URL_PREFIX: process.env.URL_PREFIX || 'http://localhost:3000',
    MICROSERVICE_URL: process.env.MICROSERVICE_URL + '/api/full/path',
    // .... other values
  };
};

Проблема в том, что когда я хочу получить, например, MICROSERVICE_URL из ConfigService, я получаю только исходное значение, установленное в файле .env, а не значение с полным путем как установлено / изменено в функции defaultConfig:

constructor(config: ConfigService) {
  this.API_URL = config.get(`MICROSERVICE_URL`);
}

Я делаю что-то не так, или ConfigModule не отменяет уже установленные переменные, и я должен использовать другую переменную для хранения измененных значений? Например, в defaultConfig:

MICROSERVICE_URL_FULL: process.env.MICROSERVICE_URL + '/api/full/path',

Это мое текущее решение, однако оно вводит много-много новых переменных, которые на самом деле не нужны, ИМХО.

...