两个具有不同密码的.env环境

时间:2019-04-14 19:12:05

标签: 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 个答案:

答案 0 :(得分:0)

对于第一个问题,是的,您可以在一个环境中加载两组凭据,因为每个密钥都不相同,您只需要在“主”代码中导入这两个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中。