web-dev-qa-db-fra.com

Heroku "Processus terminé avec le statut 137" application node.js

J'ai récemment posté une question sur un sujet similaire. J'ai fait une refonte majeure de tout sur l'URL, et la même chose s'est produite que la dernière fois: j'ai pu tout déployer et l'exécuter en utilisant heroku local web. Lorsque je suis allé sur le web dyno, il m'a dit que j'avais une erreur d'application et j'ai ensuite vérifié les journaux. Voici ce qu'il a dit (j'utilise un projet sur github appelé 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

Je suis un débutant sur Heroku et Node.js, donc toute aide est appréciée. Je fournirai toutes les informations nécessaires pour trouver une réponse.

J'ai vérifié les journaux, il a dit que at=error code=H10 desc="App crashed", cela signifie que vous avez uncaught Exception, vous devez donc vérifier votre code.

si vous souhaitez utiliser mongodb sur Heroku, vous devez essayer d'ajouter le mongodb addon pour votre application. vous pouvez trouver le doc ici

et essayez d'utiliser process.env.PORT, pas le port que vous souhaitez utiliser.

si cela ne résout toujours pas votre problème, vous pouvez essayer d'utiliser cette commande heroku run bash, cette commande peut vous faire entrer dans l'environnement Heroku et démarrer votre serveur.

8
chenkehxx

J'obtenais la même erreur lors de l'hébergement d'une application Node sur heroku, il s'est avéré que c'était le problème de port, alors faites cela, définissez le port égal à ceci

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

Donc process.env.PORT || 8080 signifie: tout ce qui se trouve dans la variable d'environnement PORT, ou 8080 s'il n'y a rien.

Et puis définissez la variable de port définie dans ce qui suit

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

Il semble que votre application expire avant de démarrer le serveur:

Délai de démarrage de l'application

Le processus pourrait-il prendre trop de temps pour minimiser les actifs de production?

1
mikermcneil

C'est définitivement un problème de port. Utilisez simplement quelque chose comme ceci:

var port = process.env.PORT || 3002

pour spécifier votre port.

C'est tout.

0
Ifeanyilawrence