Почему приложение Heroku падает после H10 и как определить проблему? - PullRequest
0 голосов
/ 07 ноября 2019

Я развертываю приложение на node.js. Mongodb-Atlas размещал приложение Heroku и после его развертывания начало падать. вот журнал инцидента:

2019-11-07T14:03:44.54763+00:00 app[web.1]: 
2019-11-07T14:03:44.547905+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2019-11-07T14:03:44.548078+00:00 app[web.1]: npm ERR!     /app/.npm/_logs/2019-11-07T14_03_43_920Z-debug.log
2019-11-07T14:03:44.609666+00:00 heroku[web.1]: Process exited with status 1
2019-11-07T14:03:44.660116+00:00 heroku[web.1]: State changed from starting to crashed
2019-11-07T14:08:46.771752+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=flix-app-test.herokuapp.com request_id=14978e4f-fb93-44c8-a6c1-294a6a254e1e fwd="84.17.61.226" dyno= connect= service= status=503 bytes= protocol=https
2019-11-07T14:08:47.381666+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=flix-app-test.herokuapp.com request_id=b067c4c5-8b09-44c7-907e-bb2010dd97ec fwd="84.17.61.226" dyno= connect= service= status=503 bytes= protocol=https
2019-11-07T14:15:51.61258+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=flix-app-test.herokuapp.com request_id=5290a4ea-94b1-4d79-a8fe-6709e6cb2a15 fwd="91.168.132.252" dyno= connect= service= status=503 bytes= protocol=https
2019-11-07T14:15:52.254787+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=flix-app-test.herokuapp.com request_id=41f76767-00c8-490c-9c13-22c0906fedb9 fwd="91.168.132.252" dyno= connect= service= status=503 bytes= protocol=https

Большинство сообщений, которые я нашел относительно этой ошибки H10, указывают на проблему в строках, которые определяют порт, который через Heroku прослушивает, что он не принимает жесткий,но прослушивание приложения осуществляется с помощью этого кода:

var port = process.env.PORT || 3000;
app.listen(port, "0.0.0.0", function() {
  console.log('Listening on Heroku defined port');
});

Код работает локально (дважды проверено), но приложение Heroku даже не загружается. Базы данных работают и доступны, и я не могу найти видимых проблем.

Я хотел бы знать, как мне поступить, чтобы выяснить, какая часть кода повреждена ИЛИ узнать, что это временная проблема с Heroku. Заранее спасибо.

1 Ответ

0 голосов
/ 07 ноября 2019

Если вы используете ExpressJS, просто выполните:

var port = process.env.PORT;
Promise.resolve(app.listen(port)).then(() => {
   console.log("Running!");
});

В любом случае, 503 - это HTTP-код службы недоступен. Если приведенный выше код не работает, опубликуйте код маршрутизатора и контроллера для маршрутов с ошибками.

...