【问题标题】:Unable to connect to MongoDB’s Atlas using Heroku during production在生产期间无法使用 Heroku 连接到 MongoDB 的 Atlas
【发布时间】:2019-12-14 16:50:34
【问题描述】:

初学者问题所以这里什么都没有:

Atlas 的 URI 在本地正常工作,立即连接。一旦我将它推送到 Heroku,它就无法连接。

同样出现错误:“production”的 NODE_ENV 值与任何部署配置文件名都不匹配

我尝试了多种方法来保存我的 URI 值,包括 .env 文件,在普通站点中,目前使用 config/default.json 导入到我的服务器文件中。

有人可以指导我了解我所缺少的吗?

const db = config.get('mongoURI')

mongoose
    .connect(db, {useNewUrlParser: true})
    .then( () =>{
        console.log('MongoDB connected via Mongoose')
    })
    .catch( err => {
        console.log('error message: ' + err)
    })

【问题讨论】:

  • 你能显示你连接mongo的代码吗?如果不是私有的,也许是回购
  • 已编辑。如前所述,在本地工作,不会部署
  • 正在使用配置包,你有 defaultçjson 和 production.json 还是只有 default.json?
  • 我认为我没有使用配置包。使用 dotenv 方法时,我使用 'require('dotenv').config' 导入并将密钥存储在 .env 文件中。使用 config.get() 方法时,我只有一个 default.json 文件,没有 prod.json

标签: node.js heroku production


【解决方案1】:

你应该通过process.env.YOUR_VAR而不是config.get来获取环境变量,你可以查看dotenv markdown获取更多信息

同样在将项目部署到 Heroku 时,如果您不将 .env 文件添加到您的 git 存储库,那么您需要从 Config Vars 选项卡中提供环境变量,例如 here in the docs

【讨论】:

    猜你喜欢
    • 2019-12-16
    • 2020-10-07
    • 2020-02-22
    • 2020-07-25
    • 2019-10-31
    • 2020-09-13
    • 2019-06-08
    • 2021-04-05
    • 2022-08-02
    相关资源
    最近更新 更多