Size: a a a

NestJS — русскоязычное сообщество

2020 April 12

S

Sviatoslav in NestJS — русскоязычное сообщество
Anton Kodwi
Ребят, привет. Прикручиваю конфиг, в итоге нест не видит мой env файл и не грузит переменные. Сделал все по доке. Где он должен лежать? На самом верхнем уровне или в src?
Не видит или не грузит? Файл не найдет или нету переменных? Через конфиг достаешь или просто через process?
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
Sviatoslav
Не видит или не грузит? Файл не найдет или нету переменных? Через конфиг достаешь или просто через process?
нет переменных в process.env по итогу. Достаю через config.get<..>
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
ConfigModule.forRoot({
     isGlobal: true,
     load: [
       databaseConfig,
     ],
   }),
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
export const databaseConfig = registerAs('database', () => {
 return {
   host: process.env.DATABASE_HOST,
   port: process.env.DATABASE_PORT,
   name: process.env.DATABASE_NAME,
   userName: process.env.DATABASE_USERNAME,
   password: process.env.DATABASE_PASSWORD,
 };
});
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
то есть на момент установки namespace'a в конфиг - переменных нет, и дальше на момент юзанья config.get() тоже нет
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Anton Kodwi
то есть на момент установки namespace'a в конфиг - переменных нет, и дальше на момент юзанья config.get() тоже нет
источник
2020 April 13

AK

Anton Kodwi in NestJS — русскоязычное сообщество
и, я доку перечитал уже всю
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
сделал по ней
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Anton Kodwi
и, я доку перечитал уже всю
Я сам не пользуюсь, ибо кубер рулит, но уже была подобная тема. В process ничего нету они в сервисе
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
Sviatoslav
Я сам не пользуюсь, ибо кубер рулит, но уже была подобная тема. В process ничего нету они в сервисе
нет их в сервисе
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
Anton Kodwi
нет их в сервисе
Ты что то не то делаешь, если нужно загрузить енв пользуйся envFilePath если нужен кастом в котором ты хочешь использовать process.env тогда через dotenv подрузи
источник

S

Sviatoslav in NestJS — русскоязычное сообщество
он если и ищет по дефолту то скорее всего только .env а не database.env но не факт я не пользовался
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
стоп, env файл должен называться ".env", а не иметь расширение .env?
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
блин
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
все, решено) кто ж знал, что это название файла, а не расширение....
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
хотя если подумать, считать это расширением глупо, учитывая кроссплатформенность ноды
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
а вот еще вопрос: configService.get<someType>(...) - шаблонный метод, он что, только тип результата нужный выставляет и все?

Вот такой код:

const port = configService.get<number>('port');

port будет иметь тип number, а внутри будет лежать строка... Какой смысл иметь дженерик версию get'a, если оно само не кастит значения к заданному типу?
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
Вот как так
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
источник

AK

Anton Kodwi in NestJS — русскоязычное сообщество
Вынимаю значения из конфига, говорю "дай мне number", он дает тип number, значение оставляет string. Но потом даже кастинг к числу - первое значение работает, а второе NaN, где логика? Это магия приватного хранилища конфиг сервиса? Что я делаю не так...
источник