Я использую 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',
Это мое текущее решение, однако оно вводит много-много новых переменных, которые на самом деле не нужны, ИМХО.