Переменная Get .env внутри объекта в контроллере NestJS

#javascript #nestjs

Вопрос:

Я создал .env

 APP_PORT=3001
DEST=C:dataformations
 

У меня есть ConfigService:ConfigService в исполнителе контроллера. Я хочу получить DEST адрес назначения из .env в этом коде.

 @UseInterceptors(FileInterceptor('file', {
  storage: diskStorage({
    destination: /*here*/ ,
    filename: (req, file, cb) => {
      const filename: string = path.parse(file.originalname).name.replace(/s/g, '')
      const extension: string = path.parse(file.originalname).ext
      cb(null, `${filename}${extension}`)
    }
  })
}))
 

Когда я использую это внутри этого другого объекта, я получаю ошибку.

Комментарии:

1. docs.nestjs.com/techniques/configuration

Ответ №1:

Вы должны использовать ConfigModule для получения переменной среды.

Проверьте документ: https://docs.nestjs.com/techniques/configuration

Комментарии:

1. я сделал проблему здесь в том, что edithor отказывается от этого.configServise, я думаю, потому что это другой объект

Ответ №2:

Если вы хотите использовать конфигурацию вне контейнера IoC Nest, вы можете попробовать nest-typed-config:

 import { selectConfig } from 'nest-typed-config';
import { ConfigModule, FileConfig } from '@/module/config';

const fileConfig = selectConfig(ConfigModule, FileConfig);

@UseInterceptors(FileInterceptor('file', {
  storage: diskStorage({
    destination: fileConfig.destination,
    filename: (req, file, cb) => {
      const filename: string = path.parse(file.originalname).name.replace(/s/g, '')
      const extension: string = path.parse(file.originalname).ext
      cb(null, `${filename}${extension}`)
    }
  })
}))