【问题标题】:Heroku/Nodejs Failing to launch, at=error code=H10 desc="AppHeroku/Nodejs 启动失败,at=error code=H10 desc="App
【发布时间】:2019-07-04 10:32:38
【问题描述】:

我知道这已被问过几次,但我还没有找到可行的解决方案。我正在尝试将我的节点服务器部署在 Heroku 上并构建成功,但日志会打印以下消息。我也在使用猫鼬,本地部署没有问题。

2019-02-10T22:30:09.912634+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=chatifydotcom.herokuapp.com request_id=b486e511-ff21-4166-ae1d-07bf5796691e fwd="74.196.2.211" dyno= connect= service= status=503 bytes= protocol=https

2019-02-10T22:30:10.287542+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=chatifydotcom.herokuapp. com request_id=18f17ca0-56df-4dfe-a560-d890a699f17f fwd="74.196.2.211" dyno= connect= service= status=503 bytes= protocol=https

服务器.js

 const uri = process.env.MONGODB_URI || "mongodb://localhost:27017/chat"
mongoose
  .connect(uri, { useNewUrlParser: true })
  .then(() => console.log("MongoDB Connected"))
  .catch(err => console.log(err.message))

    const port = process.env.PORT || 9000
server.listen(port, () => {
  console.log(`This server is over ${port}`)
})

【问题讨论】:

    标签: node.js mongodb heroku


    【解决方案1】:

    我现在正在处理同样的错误。 Heroku 错误代码 H10 本质上只是意味着应用程序崩溃了,正如它所说,但你需要做更多的挖掘来弄清楚实际问题是什么。

    您可以通过从控制台在 heroku dyno 上启动应用程序来做到这一点: 编辑:运行控制台的命令可能会有所不同,我在 Windows 上这样做了

    heroku run bash
    npm start
    

    然后您可以看到应用程序的控制台输出,以及用于故障排除的更具体的错误信息。然后您可以在此处修复或提出更具体的问题。

    【讨论】:

    • 太棒了,我会试一试。到目前为止,我一直在使用 heroku logs -t 并尝试在此基础上进行修复,但这并没有给我太多帮助。
    • @LTFoReal 是的,这些不会给你太多的帮助,一定要从 heroku 上的控制台运行它,看看能给你带来什么。如果您在运行时遇到问题,请发布。
    • @LTFoReal 如果这有助于您调查代码 H10 错误,您能接受答案吗?谢谢!
    • 嘿,抱歉,这很有帮助。它帮助我找到了 Heroku 遇到的问题,这是我作为 MONGODB_URI 传递的 heroku 地址的问题。再次感谢您的帮助。
    【解决方案2】:

    我也尝试了this question答案中的解决方案

    我的节点版本没问题,我的端口设置没问题。它们都没有真正起作用。 我的案例只是一个带有 express 的简单 js 脚本。

    然后我试着转这个

      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "dev": "nodemon index.js",
        "start": "node index.js"
      }
    

    到这里

      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "dev": "nodemon index",
        "start": "node index"
      }
    

    有效。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,我最终解决了这个问题。 就我而言,我正在执行git push heroku main,这也不是默认分支main。 我必须先去 master 分支(默认分支),将代码与我的另一个分支合并,然后 heroku git:remote -a <repoName>git push heroku master。 希望这能有所帮助!

      【讨论】:

        【解决方案4】:

        我也遇到了这个问题。我发现它归结为正在使用的节点版本中的冲突。我正在使用 16.14.0; Heroku 正在部署 17.5.0。 As it turns out,17.5.0 和猫鼬相处不来。我的 package.json 中有这个:

        "engines": {
          "node": ">=16.14.0",
          "npm": ">=8.3.1"
        }
        

        进行此更改解决了问题:

        "engines": {
          "node": "^16.14.0",
          "npm": "^8.3.1"
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-04-01
          • 2015-03-01
          • 2013-03-30
          • 1970-01-01
          • 2019-07-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多