Heroku/Nodejs无法启动,错误代码=H10 desc=“应用程序

iklwldmw  于 2022-11-13  发布在  其他
关注(0)|答案(5)|浏览(147)

我知道这个问题已经问过几次了,但是我还没有找到一个有效的解决方案。我尝试在Heroku上部署我的节点服务器,并且构建成功,但是日志打印了以下消息。我也使用mongoose,并且在本地部署没有问题。

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- 10 T22:30:10.287542+00:00希禄【路由器】:应用程序已崩溃,请输入错误代码,然后单击chatifydotcom.herokuapp.com“74.196.2.211下一步”。
Server.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}`)
})
tquggr8v

tquggr8v1#

Heroku错误代码H10本质上只是意味着应用程序崩溃了,正如它所说,但你需要做更多的挖掘,以找出真正的问题是什么。
您可以通过从控制台启动heroku dyno上的应用程序来完成此操作:编辑:运行控制台的命令可能会有所不同,我在Windows上执行了此操作

heroku run bash
npm start

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

6l7fqoea

6l7fqoea2#

我还尝试了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"
  }

这很管用。

3ks5zfa0

3ks5zfa03#

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

0lvr5msh

0lvr5msh4#

我也遇到了这个问题。我发现它归结为正在使用的节点版本中的冲突。我使用的是16.14.0; Heroku正在部署17.5.0.As it turns out,17.5.0和mongoose不沿着。我的包里有这个。json:

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

进行此更改解决了以下问题:

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

34gzjxbg5#

我的问题是我的IP地址在我的Mongo DB Atlas部署后。首先,在您的命令行输入:$ npm run。检查并修复您的pakage.json中的错误。然后,使用heroku运行npm:$ heroku run npm start。不要取消操作。同时,匹配名称并从heroku站点打开您的应用程序。它将运行或显示错误消息。
我的错误消息:Mongoose服务器选择错误:无法连接到您的MongoDB Atlas集群中的任何服务器。一个常见的原因是您试图从一个不在白名单中的IP访问数据库。请确保您当前的IP地址在您的Atlas集群的IP上。
登录MongoDB atlas。然后,进入左侧的网络访问。然后选择+添加IP地址。然后,允许从任何地方访问(0.0.0.0/0)。再次重新运行heroku应用程序。

相关问题