繁体   English   中英

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

[英]Heroku "Process exited with status 137" node.js app

我最近发布了一个关于类似主题的问题。 我对 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 的初学者,非常感谢您的帮助。 我将提供找到答案所需的任何信息。

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

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

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

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

在 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"); });

这绝对是端口问题。 只需使用这样的东西:

var port = process.env.PORT || 3002

指定您的端口。

就这样。

看起来您的应用在实际启动服务器之前就超时了:

应用启动超时

缩小生产资产的过程是否会花费太长时间?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM