我如何告诉我的节点/express应用程序,如果它应该使用测试。mac上的Env或dev.env ?
我希望能够运行我的应用程序,并告诉它连接到哪个数据库;(开发或测试)。但是,应用程序总是选择'test.env'。
我在打电话
process.env.DBNAME
,以便选择存储数据库名称的环境变量。
也会很高兴知道如何选择的环境,当我在生产中部署我的应用程序。
我不知道还有什么可以尝试的,我真的很感激你的帮助!
可以这样使用dotenv包:
-
添加一个
.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
-
启动开发中的应用程序:
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];