【问题标题】:How to set a URI as a variable depending on if it is in production environment or not如何根据是否在生产环境中将 URI 设置为变量
【发布时间】:2018-12-16 16:10:42
【问题描述】:

目前有一个 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
}

【问题讨论】:

  • 也许使用 process.env 作为条件参数是不明智的?不完全确定它是什么/什么时候出现,只知道它在 heroku 上可用
  • 如果有人能抽出一分钟的时间,我需要帮助

标签: javascript mongodb express heroku


【解决方案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 才能使其正常工作。

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 2021-12-16
    • 2021-09-23
    • 2017-08-31
    • 1970-01-01
    相关资源
    最近更新 更多