【问题标题】:How to deploy a mean.js web app to heroku, with the database hosted at mlab?如何将mean.js Web应用程序部署到heroku,数据库托管在mlab?
【发布时间】:2017-03-07 21:22:57
【问题描述】:

请告诉我确切的分步说明。假设我刚刚克隆并构建了我的新 MEAN.JS 应用程序。它在我的本地主机上运行良好。

现在我在 mlabs 创建了一个新数据库。从 mlabs 获取该数据库的 URI、用户和​​密码。

现在请告诉我如何继续在 heroku 上成功部署此应用程序。


我尝试过的:---

我更改了 production.js 文件,甚至是位于 env 文件夹中的 development.js 文件。

我已经在这两个文件中完成了这项工作。完成此操作后,当我在本地主机上运行应用程序时,它成功运行并且数据库连接到 mLabs。但是在heroku中,它给出了一个应用程序错误。我还包括 heroku 日志。

  db: {
uri: "mongodb://xxx:mLabxxx@ds023624.mlab.com:23624/project",
options: {
  user: 'username',
  pass: 'password'
},
// Enable mongoose debug mode
debug: process.env.MONGODB_DEBUG || false

}

HEROKU LOGS

根据日志,我认为它无法连接到数据库。看到这个错误:--

 [MongoError: connect ECONNREFUSED 127.0.0.1:27017]

【问题讨论】:

  • 在某些地方您尝试在本地主机中连接?该错误表明应用程序没有尝试连接到 mLab,并且是 127.0.0.1:27017。如果您共享连接代码块,请提供帮助。

标签: node.js mongodb heroku mongoose mlab


【解决方案1】:

Heroku 默认在生产环境中运行您的应用,因此您应该检查生产配置。

以您链接的存储库为基础,在this line 中,它从名为MONGOHQ_URLMONGODB_URI 的环境变量中获取数据库URL,因此您应该将add them to Heroku 与MongoLab URI 或替换为代码你想要的变量名(确保它也在 Heroku 上创建)。

如果它在您的本地主机上运行而不是在 Heroku 中,则意味着 Heroku 上的生产配置错误,您还应该确保将生产配置文件的更改也推送到 Heroku 存储库。如果你想使用开发环境在 Heroku 上进行测试,你可以更改this setting

【讨论】:

    猜你喜欢
    • 2019-09-04
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 2021-06-26
    • 2021-12-02
    • 2016-06-02
    相关资源
    最近更新 更多