首页 > 解决方案 > 如何为我的 Heroku 评论应用配置 mLab 插件?

问题描述

我的 Heroku 审查应用程序没有找到MONGODB_URI我期望 mLab 插件根据文档自动提供的环境变量。我的应用程序有一个app.json指定mongolab为附加组件并且是 Node 应用程序,所以我尝试通过访问变量,process.env.MONGODB_URI但它是undefined.

我尝试运行heroku addons:open mongolab -a my-app-pr-17以查看已配置的数据库,但收到消息“找不到该插件”

Heroku 仪表板中评论应用程序的资源选项卡显示消息“此应用程序没有附加组件”

运行heroku config -a my-app-pr-17显示一个空列表。

这是我的app.json文件。

{
  "name": "my-app",
  "addons": [
    "mongolab"
  ],
  "buildpacks": [
    {
      "url": "heroku/nodejs"
    }
  ]
}

我期望在我的节点代码process.env.MONGODB_URI中是一个带有用户名和密码的 URI,如文档中所述

标签: node.jsherokumlab

解决方案


问题app.json是只有在第一次创建评论应用程序时才会读取app.json在同一审查应用程序的后续部署中不支持对文件的更新。

在我的例子中,我连接了 GitHub,打开了一个创建评论应用程序的拉取请求,然后推送进一步的提交以更新app.json和添加mongolab附加组件。当这些进一步的提交没有为我创建附加组件时,我感到很困惑,但是 Heroku 并没有在应用程序的整个生命周期内同步更改。

创建一个新的 PR 创建了一个新的评论应用程序,它按照我的预期自动配置了 mongolab 插件。我手动将插件添加到现有的评论应用程序以继续使用它。


推荐阅读