Две среды .env с разными паролями

#node.js #dotenv

#node.js #dotenv

Вопрос:

В моем приложении я использую два API, для которых требуются разные учетные данные. Я сохраняю каждую из них в .env файле и читаю их с помощью process.env . Оба .env и .config файлы находятся в разных каталогах.

Первый config.js :

 const dotenv = require('dotenv');
const cfg = {};

dotenv.config({path: '.env'});

cfg.port = process.env.PORT;

cfg.apiKey = process.env.apiKey;
cfg.authDomain = process.env.authDomain;
cfg.databaseURL = process.env.databaseURL;
cfg.projectId = process.env.projectId;
cfg.storageBucket = process.env.storageBucket;
cfg.messagingSenderId = process.env.messagingSenderId;


module.exports = cfg;
  

Вторая config.js

 const dotenv = require('dotenv');
const cfg = {};

dotenv.config({path: '.env'});

cfg.port = process.env.PORT;

cfg.accountSid = process.env.TWILIO_ACCOUNT_SID;
cfg.authToken = process.env.TWILIO_AUTH_TOKEN;
cfg.twimlAppSid = process.env.TWILIO_TWIML_APP_SID;
cfg.callerId = process.env.TWILIO_CALLER_ID;

module.exports = cfg;
  

Я настроил оба .env файла одинаково. Но, по-видимому, второй config.js не может прочитать учетные данные, такие как: TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN и т.д. Что привело меня к мысли, что для второго .env файла я должен настроить иначе, чем первый.

Как мне загрузить два набора учетных данных в одну среду? Или я должен загружать их в разные среды?

Спасибо за ваше время.

Комментарии:

1. Импортируете ли вы в свой «основной» оба config.js ? или вы определили какое-то условие для импорта того или иного ‘config.js ?

Ответ №1:

Что касается вашего первого вопроса, да, вы можете загрузить оба набора учетных данных в одну среду, поскольку ключи для каждого разные, вам просто нужно импортировать оба config.js в вашем «основном» коде. Если вам нужно использовать два набора учетных данных в одном api, вы можете использовать оба учетных данных в одном и том же JSON, как показано ниже:

 {
  firstSet: {
      TWILIO_ACCOUNT_SID: 'value',
      TWILIO_AUTH_TOKEN: 'value',
      TWILIO_TWIML_APP_SID: 'value',
      TWILIO_CALLER_ID: 'value'
  },
  secondSet: {
      TWILIO_ACCOUNT_SID: 'value2',
      TWILIO_AUTH_TOKEN: 'value2',
      TWILIO_TWIML_APP_SID: 'value2',
      TWILIO_CALLER_ID: 'value2'
  }
}
  

Определив ваши две разные учетные данные, вы можете определить логику для использования одной или другой или обеих учетных данных в вашем config.js , в зависимости от ваших потребностей, и экспортируйте это в свое приложение, где вы могли бы выбрать учетные данные из конфигурации для использования в api.