Создание переменных в глобальном окружении LINUX, Windows и Node js
В Bahs («командной строке») Linux или Git Bash применяем следующие команды:
env
– увидеть список всех наших переменных в environment (англ. «окружении») машины, на которой работаем.
env | grep <name variable>
– посмотреть содержимое конкретной переменной. Например, env | grep SHELL
export STELLA=ZLATA
– создали переменную «STELLA» со значением «ZLATTA».
В консоли Windows:
set
– увидеть список всех наших переменных.
setx STELLA 'ZLATA'
– создали переменную «STELLA» со значением «ZLATTA».
ВАЖНО И ИНТЕРЕСНО! Почему для Node js нужно идти немного другим путем?
Особенностью таких переменных является то, что они «живуте» только в той консоли, где были созданы. Например, мы можем создать файл с расширением .js и прописать в нем вызов в консоль нашей переменной :
main.js
console.log(nameVariable);
Теперь, если мы в нашей консоли, где создавали переменную (речь пока идет вообще о консолях, а не о конкретно той, где запускаим приложение), запустим файл через node js:
node main.js
, то получим вывод нашей переменной.
Но если запустим этот же файл с люблй другой консоли, наприример, через консоль VS code, то в ответ придет underfined.
Как можно поступить для Node js?
- Создаем файл .env (обычно в корне проекта). Добавляем ее в .gitignore.
- Создаем прямо в нем команду для создания переменной: export STELLA=ZLATA.
- Запускаем команду в консоли (VS Code):
source .env
, которая предназначена для выполнения кода внутри указанного файла. - Теперь в нас в приложении можно обращаться к глобальным переменным, которые были экспортированы командами в файле .env. В нашем случае это STELLA. Для получения значения в файлах *.js вызываем
process.env.STELLA
.
Аналога команды source
для Windows я не нашел, но переменная добавленная при помощи setx можно без проблем получить через process.env.STELLA
в файлах приложения.