Я поискал в Интернете эту информацию и не нашел ни одного ресурса, который описывал бы, как настроить переменные среды в процессе Node.js, который действительно работал у меня. Я наконец нашел эту информацию в полезном видео от Chris Courses на YouTube, поэтому я хотел кратко поделиться им с вами здесь. Похоже, есть и другие способы добиться этого, но этот сработал для меня, и я надеюсь, что он будет вам полезен.
Шаг 1: .gitignore
Мы собираемся добавить переменные в файл, который мы создадим просто .env
, но перед этим давайте обязательно добавим .env
в наш .gitignore
файл. Если вы используете create-react-app, как и я, это уже должно быть сделано за вас, но хорошо бы перепроверить. (Если вы не знаете о .gitignore
, подробнее здесь)
Основная причина игнорирования этого файла заключается в том, что мы не хотим отслеживать пароли, ключи API и другую конфиденциальную информацию в репозитории git, особенно общедоступном. Наш .gitignore
файл в корне нашего проекта должен выглядеть примерно так:
# dependencies /node_modules # misc .DS_Store .env
Шаг 2: .env.default
Теперь давайте определим переменные, которые мы будем использовать. Для простоты предположим, что нам нужна одна переменная, которая будет указывать, находимся ли мы в режиме разработки или производства, и несколько других, которые сообщают нам некоторую информацию о базе данных, которую мы будем использовать.
В корне нашего проекта мы собираемся создать файл с именем .env.default
. Этот тип файла обладает некоторыми причудливыми возможностями, которые позволяют нам сбрасывать любые ранее установленные переменные среды на пустые значения, но пока просто думайте о нем в основном как о шаблоне, на который мы можем ссылаться позже при установке значений, чтобы мы знали, какие переменные мы ' предполагается использовать.
Вы можете использовать любые имена, какие захотите, но по общему соглашению они заключаются в заглавные буквы с подчеркиванием между словами. Теперь наш .env.default
файл выглядит так:
NODE_ENV= DB_HOST= DB_USER= DB_PASSWORD= DB_NAME=
Не беспокойтесь о пустых заданиях. Помните, это просто напоминание на потом.
Шаг 3: .env
Большой! Итак, мы знаем, какие переменные мы хотим использовать, теперь нам просто нужно их присвоить. Давайте продолжим и добавим .env
файл в корень нашего проекта. Он должен появиться рядом с нашим .env.default
файлом в дереве проекта.
Мы можем скопировать и вставить содержимое нашего .env.default
файла в этот и присвоить некоторые значения. Теперь файл .env
должен выглядеть примерно так (с вашими собственными соответствующими значениями):
NODE_ENV=development DB_HOST=localhost DB_USER=root DB_PASSWORD=baconpancakes DB_NAME=tree_fort
Если вы в основном используете JavaScript, это может показаться немного странным, но не беспокойтесь о недостатке кавычек, пробелов или точек с запятой. Просто настройте файл таким образом и введите свои собственные значения!
Шаг 4: требуется
Итак, у нас установлены переменные, и теперь нам просто нужно заставить нашу программу запускать этот файл, чтобы мы могли их использовать.
Во-первых, убедитесь, что у вас установлен пакет dotenv, запустив yarn add dotenv
или npm install dotenv --save
.
Затем просто включите эту строку кода в один из ваших бэкэнд-файлов:
require('dotenv').config();
Я знаю, это тоже выглядит немного странно, но это правильный способ загрузки переменных. Вам нужно только один раз включить эту строку в свой проект. У меня он есть в файле, в котором я установил соединение с базой данных, но, похоже, он будет работать одинаково хорошо, если я вместо этого включу его в настройку своего сервера.
Затем мы можем использовать заданные нами переменные! Мы можем получить к ним доступ через объект process.env
. Вот пример:
console.log(process.env.DB_PASSWORD) // baconpancakes console.log(process.env.DB_USER) // root
Обратите внимание, что эти переменные среды будут работать только в серверной части вашего приложения. Я попробовал их на интерфейсе, и моему приложению это совсем не понравилось. Если у вас есть хорошее решение для подобного эффекта на передней панели, дайте мне знать!
Надеюсь, вы нашли эту статью полезной. Я знаю, что долго искал эту информацию. Пожалуйста, оставьте мне комментарии с вопросами, исправлениями или лучшими способами установки переменных среды для Node!
-Кэмерон