Size: a a a

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

2020 April 09

E

Evgeny in NestJS — русскоязычное сообщество
а если у меня локально есть .env, а на серве его нет, переменные другим образом задаются
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
Evgeny
а если у меня локально есть .env, а на серве его нет, переменные другим образом задаются
да
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
через переменные окружения)
источник

OI

Olexiy Ivashkin in NestJS — русскоязычное сообщество
Evgeny
а если у меня локально есть .env, а на серве его нет, переменные другим образом задаются
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
+
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
Evgeny
Получается мне нужно сделать класс, в конструктор засунуть этот конфигсервис, сделать метод получения переменных и таскать этот класс везде
ну я просто всё в конфигфайлах определяю, это достаточно удобно
источник

OI

Olexiy Ivashkin in NestJS — русскоязычное сообщество
Evgeny
Это не удобно же
это не неудобно, а более грамотно, конфиг сервис это зависимость которую можно инжектировать
источник

AB

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

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
+ типизацию можно вот так делатть
источник

OI

Olexiy Ivashkin in NestJS — русскоязычное сообщество
Evgeny
Ребят, какая-то фигня с env переменными.

Вот что я добавил в импорт:
ConfigModule.forRoot({ isGlobal: true })

перед bootstrap() принтуем console.log(process.env)
получаем SECRET_KEY: 'secret’, и др.

Вроде бы все нормально, но затем где нибудь здесь (пример ниже), лежит undefined.

@Client({
 transport: Transport.GRPC,
 options: {
   url: ${process.env.SERVICES_NETWORK_IP}:50054,
   package: 'somepackage',
   protoPath: join(__dirname, '../somedir/someproto.proto'),
 },
})
private client: ClientGrpc


Почему так?
в вашем случе с конфигурацией клиента для микросервиса наверное лутше будет использовать ClientProxyFactory на уровне модуля, типо такого
источник

AB

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

OI

Olexiy Ivashkin in NestJS — русскоязычное сообщество
Olexiy Ivashkin
в вашем случе с конфигурацией клиента для микросервиса наверное лутше будет использовать ClientProxyFactory на уровне модуля, типо такого
источник

OI

Olexiy Ivashkin in NestJS — русскоязычное сообщество
а потом в контролеере просто
constructor(@Inject(CROSSING_PARSER) private readonly client: ClientProxy) {}
источник

E

Evgeny in NestJS — русскоязычное сообщество
это неудобно, мне нужно дернуть process.env, получить свое и забыть
источник

E

Evgeny in NestJS — русскоязычное сообщество
пусть это хоть 300 раз грамотно там
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
Evgeny
это неудобно, мне нужно дернуть process.env, получить свое и забыть
а зачем тебе тогда nestjs если ты намеренно хочешь делать плохо?
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
поставь экспресс и откажить от абстракций в виде IOC/DI
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
сделать import 'dotenv/config' в main.ts и всё
источник

E

Evgeny in NestJS — русскоязычное сообщество
экспресс нереально поддерживать когда разрастается
источник

AB

Aleksandr Bukhalo in NestJS — русскоязычное сообщество
Переслано от Aleksandr Bukhalo
сделать import 'dotenv/config' в main.ts и всё
источник