2017-04-16 16 views
0

Ich habe eine Express-App auf Heroku gehostet. Lokal läuft es gut, stürzt aber immer wieder auf Heroku. Jedes Mal, wenn ich dazu gehe, bekomme ich die Seite "Anwendungsfehler".Heroku Node App stürzt ab

application error page

Ich doppelt alle Variablen Umwelt geprüft und sie scheinen in Ordnung.

Die Heroku Protokolle genau nicht viel Hilfe anbieten:

2017-04-16T23:02:49.001768+00:00 heroku[web.1]: State changed from crashed 
to starting 
2017-04-16T23:02:52.072906+00:00 heroku[web.1]: Starting process with 
command `npm run start` 
2017-04-16T23:02:56.042611+00:00 app[web.1]: 
2017-04-16T23:02:56.042628+00:00 app[web.1]: > [email protected] start /app 
2017-04-16T23:02:56.042629+00:00 app[web.1]: > node bin/app 
2017-04-16T23:02:56.042630+00:00 app[web.1]: 
2017-04-16T23:02:57.200912+00:00 heroku[web.1]: State changed from starting 
to crashed 
2017-04-16T23:02:57.201454+00:00 heroku[web.1]: State changed from crashed 
to starting 
2017-04-16T23:02:57.192198+00:00 heroku[web.1]: Process exited with status 0 
2017-04-16T23:03:00.981528+00:00 heroku[web.1]: Starting process with 
command `npm run start` 
2017-04-16T23:03:04.312475+00:00 app[web.1]: 
2017-04-16T23:03:04.312489+00:00 app[web.1]: > [email protected] start /app 
2017-04-16T23:03:04.312490+00:00 app[web.1]: > node bin/app 
2017-04-16T23:03:04.312491+00:00 app[web.1]: 
2017-04-16T23:03:06.093211+00:00 heroku[web.1]: Process exited with status 0 
2017-04-16T23:03:06.112842+00:00 heroku[web.1]: State changed from starting 
to crashed 

So dann habe ich versucht, manuell die App starten:

$ heroku run bash 
... 
$ npm run start 

Ich habe keine Fehler. Ich bin mit dem PM2 Prozess-Manager, so dass ich es überprüft, ob der App läuft und es scheint, wie es ist:

$ node_modules/.bin/pm2 list 
... 

pm2 output

Aber dann, wenn ich gehe meine App öffnen ich die gleiche Seite "Anwendungsfehler" wie zuvor.

'Heroku Neustart' hilft nicht. Es stürzt immer wieder ab.

Der einzige Unterschied zwischen meiner lokalen Umgebung und Heroku (soweit ich zumindest sagen kann ...) ist, dass ich lokal eine Datei habe, von der ich einen privaten RSA-Schlüssel lese, und auf Heroku der Schlüssel ist Lesen Sie aus der Umgebung.

Edit: Wie gewünscht, hier ist mein procfile:

web: npm run start 

Irgendwelche Ideen?

+0

Was macht der private RSA-Schlüssel? Haben Sie die Anweisungen von Heroku zur Bereitstellung Ihrer App befolgt? https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction –

+0

Ja, ich folgte der Anleitung. Ich versuche meine Hand beim Aufbau einer GitHub-Integration, also ist der Schlüssel für GitHub. – Yulek

+0

Können Sie Ihre Procfile hinzufügen? –

Antwort

0

2 Dinge versuchen: Ihre procfile ändern:

web: node start.js 

Dann stellen Sie sicher, dass Ihre Web-Prozess, indem sie es läuft es Scaling-up:

heroku ps:scale web=1 

Sie auf Ihrem Computer in einem Terminal-Fenster laufen diese Befehl in Ihrem Projekt:

heroku local web 

Es simuliert, wie Heroku Ihre App läuft a nd sollte Ihnen Informationen darüber geben, was gerade passiert.

+0

Versuchte es, aber kein Glück ... Changed Procfile zu "Knoten Bin/App" + skaliert die App nach unten und wieder hoch, aber es stürzt immer noch ab. Wenn ich es irgendwie selbst funktioniere, poste ich es hier. – Yulek

+1

Mein einziger Rat ist, Heroku zu verwenden, um Ihre App lokal zu starten und zu sehen, was sie sagt (aktualisierte Antwort) –