Heroku“进程以状态 137 退出”node.js 应用程序

新手上路,请多包涵

我最近发布了一个关于类似主题的问题。我对 URL 上的所有内容进行了大修,并且发生了与上次相同的事情:我可以部署所有内容并使用 heroku local web 运行它。当我访问 web dyno 时,它说我有一个应用程序错误,然后我检查了日志。这是它所说的(我在 github 上使用一个名为 atwork 的项目):

 2017-05-02T02:35:39.191493+00:00 app[web.1]: Loaded model: chats.js
2017-05-02T02:35:39.200517+00:00 app[web.1]: Loaded model: streams.js
2017-05-02T02:35:39.196830+00:00 app[web.1]: Loaded model: posts.js
2017-05-02T02:35:39.209761+00:00 app[web.1]: Loaded model: users.js
2017-05-02T02:35:40.067321+00:00 app[web.1]: AtWork running at http://:::8111
2017-05-02T02:35:50.116492+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path="/" host=room111-thoughts.herokuapp.com request_id=44a6e779-e6b8-4a33-a5b9-53430af2ad8f fwd="108.221.62.78" dyno= connect= service= status=503 bytes= protocol=https
2017-05-02T02:36:35.859814+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2017-05-02T02:36:35.859903+00:00 heroku[web.1]: Stopping process with SIGKILL
2017-05-02T02:36:35.956564+00:00 heroku[web.1]: Process exited with status 137
2017-05-02T02:36:35.969766+00:00 heroku[web.1]: State changed from starting to crashed
2017-05-02T02:37:22.933285+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=room111-thoughts.herokuapp.com request_id=80ffc71f-d792-4538-b50a-5140b7658819 fwd="108.221.62.78" dyno= connect= service= status=503 bytes= protocol=https

我是 Heroku 和 Node.js 的初学者,非常感谢您的帮助。我将提供找到答案所需的任何信息。

原文由 I am a registered user 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 316
2 个回答

我检查了日志,它说 at=error code=H10 desc="App crashed" ,这意味着你有 uncaught Exception ,所以你应该检查你的代码。

如果你想在 Heroku 上使用 mongodb ,你应该尝试为你的应用程序添加 mongodb addon 。你可以在 这里 找到文档

并尝试使用 process.env.PORT ,而不是您要使用的端口。

如果仍然不能解决你的问题,你可以尝试使用这个命令 heroku run bash ,这个命令可以让你进入heroku环境并启动你的服务器。

原文由 chenkehxx 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 heroku 上托管 Node 应用程序时我遇到了同样的错误结果是端口问题所以只需将端口设置为等于此

var port = process.env.PORT || 8080;

所以 process.env.PORT || 8080 表示:环境变量 PORT 中的任何内容,如果什么都没有,则为 8080。

然后在下面设置set port变量

var server=app.listen(port,function() {
console.log("app running on port 8080"); });

原文由 Hadi Mir 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题