Обычная альтернатива тому, что вы делаете, особенно при использовании ключей API, заключается в использовании environment variables. Это настройка конфигурации на уровне операционной системы. Каждый процесс имеет свой собственный набор переменных среды, обычно унаследованных от его родительского процесса. По соглашению переменные среды имеют имена в верхнем регистре.
В node.js вы можете получить доступ к переменным окружения через process.env
. Например, если вы запустите приложение, как это:
$ MY_VARIABLE=test node app.js
Вы можете получить доступ к значению переменной в MY_VARIABLE
среды через:
process.env.MY_VARIABLE
Это может быть утомительным, однако, должны держать прохождения переменная (ы) среды при каждом вызове вашей программы. Вот почему есть такие пакеты, как dotenv, которые позволяют хранить переменные среды в текстовом файле.
Более конкретно, вы будете иметь файл с именем .env
и в нем вы можете иметь:
MY_VARIABLE=test
OTHER_VARIABLE=foo
В начале вашего app.js
, то вы делаете:
require('dotenv').config();
Это читает среду значения переменных из файла .env
. Вы можете получить доступ к ним, как вы сможете получить доступ любые другие переменные окружения:
console.log("MY_VARIABLE: " + process.env.MY_VARIABLE);
console.log("OTHER_VARIABLE: " + process.env.OTHER_VARIABLE);
Теперь вам не нужно явно передавать переменные окружения для вашего приложения при вызове, то есть вы можете просто запустить его как обычно:
$ node app.js
Если вы сделать проход один в явном виде, оно будет отменять любое значение, вы дали в своем .env
файле:
$ MY_VARIABLE=bar node app.js
Теперь переменная окружения MY_VARIABLE
будет иметь значение "bar"
вместо "testing"
. Поскольку OTHER_VARIABLE
не передается явно, он сохраняет свое значение "foo"
, указанное в файле .env
.
Что случилось с сохранением его в файле .js и экспортированием значений? Тогда вы можете просто потребовать их там, где вам это нужно. –
По-видимому, я не понимаю ваш вопрос. если вы не хотите, чтобы это глобально требовало его локально. – Kuf