Змінні оточення
Last updated
Last updated
При розробці веб-застосунків часто використовується доступ до баз даних, різних сервісів, API тощо. Доступ до цих сервісів відбувається переважно за допомогою секретних ключів. Виникає проблема, коли потрібно синхронізувати проєкт з репозиторієм на GitHub. Адже ці ключі та паролі (з огляду безпеки) не можна викладати у загальний доступ.
Для розв'язання цього питання використовують змінні середовища. Їх створюють за допомогою модуля , а завантажують з файлів з розширенням .env.
Ці файли створює сам розробник. Файли .env можна розмістити як в корені проєкту, так і в якомусь підкаталозі.
Після підключення модуля у нашому додатку, зміні оточення додаються в об'єкт process.env. А вже із нього ці змінні ми можемо використовувати в нашому проєкті.
Файл .env ОБОВʼЯЗКОВО треба додати до файлу .gitignore. Утім, для інших розробників можна створити .env.example зі структурою оригінального файлу, але із заміненими значеннями секретних ключів.
Розберемо роботу з цими файлами:
Встановимо модуль
Заімпортуємо модуль в наш проєкт сервера
У корені проєкту створимо файл .env і додамо у нього змінні:
Тепер у файлі програми index.js треба якомога раніше підключити наш файл.
І тепер визначені в .env змінні будуть доступні в нашій програмі як:
Щоб в цьому переконатися, можна вивести їх в консоль:
У файлі .env ми можемо зберігати URL, порти, ключі від вервісів і баз даних тощо.
Як приклад візьмемо порт нашого сервера з оточення. Можна також (не обовʼязково) якщо порт буде невизначений, то дати йому дефолтне значення 3000:
При запуску сервера можемо визначити змінну оточення, в якій зберігатимемо назву режиму в якому запускаємо сервер. Для цього пропишемо відповідне налаштування в package.json в розділі scripts:
Тобто на цьому етапі ми в змінну оточення process.env.NODE_ENV визначаємо в якому режимі запустили сервер.
Створимо два окремі файли production.env та development.env в яких будемо зберігати різні конфігурації змінних оточення. Покладемо ці файди в папку enviroments.
Раніше ми вже розглянули підключення файлу змінних оточення. Тепер будемо підключати різні файли в залежності від змінної NODE_ENV визначеної при запуску сервера. Також виведемо в консоль NODE_ENV і APP_NAME і запустимо сервер в різних режимах:
Запустимо сервер у двох режимах і переконаємося, що вантажиться відповідний файл змінних оточення:
Тобто NODE_ENV - встановлюється під час запуску сервера коли запускаємо скрипт. Відповідно знаючи яка конфігурація оточення у нас, ми й під'єднуємо той чи інший файл змінних оточення.
Покликання: