Перейти до основного вмісту

Змінні оточення

Коли ми починаємо розробляти веб-додаток, рано чи пізно стикаємося з ситуацією використання сторонніх джерел даних, сервісів, облікових даних API і т.д.. Доступ до цих ресурсів майже завжди відбувається за допомогою секретних ключів. Це стає великою проблемою, коли код програми передається в загальнодоступний репозиторій як GitHub. Код доступний усім, хто його бачить, а отже і наші секретні ключі теж.

Як вирішують цю проблему? Правильне рішення – використовувати змінні середовища. Це локальні змінні, які доступні нашому додатку. Створення цих змінних виконується за допомогою модуля dotenv. Цей модуль завантажує змінні середовища з файлу .env, який ви створюєте наприклад у кореневому каталозі нашої програми. Після ми підключаємо модуль у нашому додатку і він додає змінні оточення в об'єкт process.env, і вже звідти, не показуючи значення цих змінних, ми можемо використовувати їх у додатку. Само собою файл .env ми повинні додати до файлу .gitignore

Спочатку встановимо пакет.

npm install dotenv

Потім додамо у файлі app.js наступний рядок.

require('dotenv').config();

Потім створюємо .env файл у кореневому каталозі нашої програми та додаємо в нього змінні.

SECRET_KEY=123456
NODE_ENV=development

Тепер у файлі програми app.js будуть доступні будь-які змінні, які ми додали до файлу .env. Ці змінні доступні тепер у програмі наступним чином

process.env.SECRET_KEY;
process.env.NODE_ENV;

Надалі ми завжди використовуватимемо змінні оточення для доступу до секретних даних, таких як секретні слова для cookie або jwt, url підключення до бази даних та інше.