如何将URI设置为变量,取决于它是否在生产环境中

时间:2018-12-13 22:20:28

标签: javascript mongodb express heroku

当前有一个MERN应用程序试图在heroku上进行部署。我通过本地导入配置文件声明了mongodb URI,但是在heroku上,我将heroku设置为使用process.env.mongoURI。设置代码的好方法是什么,以便在本地运行时使用本地配置文件,而在heroku中运行时使用heroku配置呢?到目前为止,这是我一直在尝试的方法,但没有用。

if (process.env) {
  const keys = null
} else {
  const keys = require('./config/keys')
}

let db = '';
if (process.env) {
  db = process.env.mongoURI
} else {
  db = keys.mongoURI
}

1 个答案:

答案 0 :(得分:1)

这是我的方法。我为不同的环境创建了一个不同的配置文件。例如:

我的配置文件:

const environment = {};

environment.development = {

    mongoURI: 'Your mongo uri',
    port: '5000',
    secret: "YOUR SECRET"
};

environment.production = {

    mongoURI: 'Your mongo uri',
    port: 'YOUR PORT',
    secret: "YOUR SECRET"
};

var currentEnvironment = typeof(process.env.NODE_ENV) == 'string' ? process.env.NODE_ENV.tolower() : "";

var environmentToExport = typeof(environment[currentEnvironment]) == 'string' ? environment[currentEnvironment] : environment.development;

module.exports = environmentToExport;

您还需要在本地计算机上设置NODE_ENV才能起作用。