【问题标题】:App won't connect to MongoDB using MongoDB code应用程序不会使用 MongoDB 代码连接到 MongoDB
【发布时间】:2020-08-09 11:10:42
【问题描述】:

我可以在本地运行一切正常,并且应用程序显示在 Heroku 上(全部使用本地 mongoose 数据库),但如果我切换到 MongoDB 数据库,使用 MongoDB 提供的代码,本地 (goorm) 和当我做任何需要解决数据库问题的事情时,Heroku 网站都会失败。

Heroku 日志中出现的第一个错误是:

2020-08-08T15:57:45.898855+00:00 heroku[web.1]: State changed from starting to crashed 
2020-08-08T15:57:46.903138+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=lit-forest-68974.heroku app.com request_id=a99ca76f-f8a8-4790-bf83-d42c24cc17d7 fwd="77.11.27.47" dyno= connect= service= status=503 bytes= protocol=https
2020-08-08T15:57:47.298492+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=lit-forest-68974.herokuapp.com request_id=cf828829-07cf-4c23-861f-3a123039a66f fwd="77.11.27.47" dyno= connect= service= status=503 bytes= protoco
l=https

我在想(希望)问题在于我如何在 app.js 文件中引用数据库。我正在使用:

const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://NeilGreer:Ng232117@clearport1.sxp3s.mongodb.net/clearport11?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true , useUnifiedTopology: true});
client.connect(err => {
  const collection = client.db("test").collection("devices");
  // perform actions on the collection object
  client.close();
});

这是直接从MongoDB复制的代码。'

有没有人遇到过类似的问题?

【问题讨论】:

  • 如果您的 uri 变量包含您的实际用户/密码,请考虑编辑和删除它们。

标签: node.js mongodb heroku


【解决方案1】:

您收到 H10 错误。 在您的 MongoDB 连接文件上没有发现任何问题,因为它在本地运行良好。

请检查以下项目。

  1. 检查是否在 package.json 中添加了启动脚本

    “脚本”:{ “开始”:“节点 index.js” }

  2. 不要在代码中设置 PORT。 Heroku 会自动设置 PORT 并且可以从环境变量中获取。

    const PORT = process.env.PORT || 5000

  3. 同时检查你的 Procfile 是否正确给出了 web dyno 命令。

【讨论】:

    猜你喜欢
    • 2021-10-24
    • 2020-05-08
    • 2019-01-05
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    相关资源
    最近更新 更多