NodeJS не распознает .env файл - PullRequest
0 голосов
/ 05 апреля 2020

У меня работает 5 NodeJS сервисов, но у меня проблема в одном из них.

Это файл nodemon.json:

{
  "watch": ["**/*.ts"],
  "ext": "ts,json",
  "ignore": ["./test/*.ts"],
  "exec": "node -r ts-node/register -r dotenv/config Index.ts dotenv_config_path=$(pwd)/.env",
  "env": {
    "NODE_ENV": "development"
  }
}

Он такой же, как остальные услуги. Когда я запускаю npm run dev, я получаю сообщения об ошибках в зависимости от того, какое значение берется из файла .env, например:

const LOCAL_CONFIGURATION = {
    PORT_APP: 8082,
    MONGODB: {
        SERVER: process.env.MONGO_DTE,
        AUTH: {
            auth: {
                password:process.env.MONGO_PASSWORD,
                user:process.env.MONGO_USER
            }
        },
    },
    MS_NOTIFICACION: "http://localhost:8089/notificacion",
    ELASTIC_PATH: process.env.ELASTIC_PATH,
    ...COMMON,
};

Первое сообщение об ошибке: ConfigurationError: Missing node(s) option Это сообщение создается, потому что оно не читает значение из process.env.ELASTIC_PATH, но если я добавлю значение с жестким кодом, такое как "http://with.the.correct.url", и он попытается снова выполнить, я получу еще одну ошибку:

Error: Credentials must be provided when creating a service client Эта ошибка потому что он пытается прочитать password:process.env.MONGO_PASSWORD и user:process.env.MONGO_USER

et c, поэтому существует проблема с чтением файла .env. Я знаю, что файл .env имеет эти значения, и файл находится в UTF-8, без кавычек и т. Д. c. Файл .env - это тот же файл, что и другие службы, в остальном он работает нормально, но я не знаю, почему его здесь не читают.

Есть идеи?

РЕДАКТИРОВАТЬ:

enter image description here

Плюс, я вставил console.log(process.env); в config.ts файл, и он показывает значения, подобные этому:

enter image description here

Но нет значений из .env, например, там на рисунке есть значение с именем COMPUTERNAME, поэтому, если я поставлю console.log(process.env.COMPUTERNAME);, я получу: IBM-NOT87

Почему не получается файл .env?

1 Ответ

0 голосов
/ 05 апреля 2020

Похоже, вам нужно / настроить dotenv. Документы :

Как можно раньше в вашем приложении, потребуйте и настройте dotenv.

require('dotenv').config()

...