我如何告诉我的节点/ express应用程序,如果它应该使用test.mac上的Env或dev.env ?



我如何告诉我的节点/express应用程序,如果它应该使用测试。mac上的Env或dev.env ?

我希望能够运行我的应用程序,并告诉它连接到哪个数据库;(开发或测试)。但是,应用程序总是选择'test.env'。

我在打电话

process.env.DBNAME

,以便选择存储数据库名称的环境变量。

也会很高兴知道如何选择的环境,当我在生产中部署我的应用程序。

我不知道还有什么可以尝试的,我真的很感激你的帮助!

可以这样使用dotenv包:

  1. 添加一个.env文件和在您的.env文件中,为每个环境添加变量:

    DB_URI_DEVELOPMENT="https://someuri.com"
    DB_USER_DEVELOPMENT=someuser
    DB_PASSWORD_DEVELOPMENT=somepassword
    DB_URI_TEST="https://otheruri.com"
    DB_USER_TEST=otheruser
    DB_PASSWORD_TEST=otherpassword
    
  2. 启动开发中的应用程序:

NODE_ENV=development node server.js

或在测试中:

NODE_ENV=test node server.js

访问应用程序中的环境变量:

if (process.env.NODE_ENV !== 'production') {
require('dotenv').config();
}

const env = process.env.NODE_ENV.toUpperCase();

通过在环境变量后面加上大写环境字符串来访问当前环境变量。

var dbUri = process.env['DB_URI_' + env];
var dbUser = process.env['DB_USER_' + env];
var dbPassword = process.env['DB_PASSWORD_' + env];

最新更新