---
id: 587d7fb1367417b2b2512bf2
title: Використання файлу .env
challengeType: 2
forumTopicId: 301521
dashedName: use-the--env-file
---

# --description--

Файл `.env` – це прихований файл, який використовують для передачі змінних середовища до вашого додатку. Цей файл є таємним, ніхто, крім вас, не може отримати до нього доступ, та він може використовуватися для зберігання даних, які ви хочете залишити конфіденційними або прихованими. Наприклад, ви можете зберігати API-ключі з зовнішніх сервісів або URI вашої бази даних. Ви також можете використовувати його для зберігання параметрів конфігурації. Налаштовуючи параметри конфігурації, ви можете змінити поведінку своєї програми без необхідності переписувати код.

Змінні середовища доступні з додатку як `process.env.VAR_NAME`. Об'єкт `process.env` є глобальним об'єктом Node, а змінні передаються у вигляді рядків. Згідно з конвенцією, назви змінних пишуться у верхньому регістрі, а слова розділяються нижньою рискою. `.env` – це файл оболонки, тому вам не потрібно брати імена чи значення в лапки. Також важливо відзначити, що не має бути пробілу навколо знаку рівності, коли ви привласнюєте значення змінним, наприклад, `VAR_NAME=value`. Зазвичай ви писатимете визначення кожної змінної в окремому рядку.

# --instructions--

Додамо змінну середовища як параметр конфігурації.

Створіть файл `.env` в корені директорії свого проєкту та збережіть в ньому змінну `MESSAGE_STYLE=uppercase`.

Потім в обробнику маршруту GET `/json`, який ви створили під час останнього виклику, отримайте доступ до `process.env.MESSAGE_STYLE` та перетворіть `message` об’єкта відповіді у верхній регістр, якщо змінна дорівнює `uppercase`. Об'єктом відповіді повинен бути `{"message": "Hello json"}` або `{"message": "HELLO JSON"}`, залежно від значення `MESSAGE_STYLE`. Зверніть увагу, що ви повинні прочитати значення `process.env.MESSAGE_STYLE` **всередині** обробника маршруту, а не поза ним, оскільки так працюють наші тести.

**Примітка:** якщо ви використовуєте Replit, ви не можете створити файл `.env`. Замість цього використайте вбудовану вкладку <dfn>SECRETS</dfn> для додавання змінної.

Якщо ви працюєте локально, вам знадобиться пакет `dotenv`. Він завантажує змінні середовища з вашого файлу `.env` в `process.env`. Пакет `dotenv` вже встановлений та знаходиться у файлі `package.json` вашого проєкту. Зверху файлу `myApp.js` додайте `require('dotenv').config()`, щоб завантажувати змінні середовища.

# --hints--

Відповідь кінцевої точки `/json` повинна змінюватися відповідно до змінної середовища `MESSAGE_STYLE`

```js
(getUserInput) =>
  $.get(getUserInput('url') + '/_api/use-env-vars').then(
    (data) => {
      assert.isTrue(
        data.passed,
        'The response of "/json" does not change according to MESSAGE_STYLE'
      );
    },
    (xhr) => {
      throw new Error(xhr.responseText);
    }
  );
```

# --solutions--

```js
/**
  Backend challenges don't need solutions, 
  because they would need to be tested against a full working project. 
  Please check our contributing guidelines to learn more.
*/
```
