最近、同様のトピックについて質問を投稿しました。 URLのすべてを大幅に見直したところ、前回と同じことが起こりました。すべてをデプロイし、heroku local web
を使用して実行できました。 Web dynoにアクセスすると、アプリケーションエラーが発生したと表示され、ログを確認しました。これが言ったことです(私はgitworkで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環境に移行してサーバーを起動できます。
Nodeアプリをherokuでホストしているときに同じエラーが発生しました
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
ポートを指定します。
それで全部です。