Fehler ausführen Node.js app auf Heroku
Ich bin immer frustrierend "Fehler" beim ausführen einer einfachen Node.js app auf Heroku. Heroku sich nicht meldet einen Fehler - die app ist nicht abgestürzt, keine "Hxx" - codes gezeigt wird); was ich bekomme ist diese:
heroku[router]: at=info method=GET path=/index.html
host=realsheek.herokuapp.com fwd="24.63.82.165" dyno=web.1 connect=0ms
service=4ms status=404 bytes=33
Wenn ich die app starte aus dem browser, es sagt Cannot GET
. Ich weiß nicht, was er versucht zu GET
. Meine app ist ein test-Bett für eine SocialProvider Mozilla SocialAPIs. Die app selbst ist eine version der demo von https://github.com/mixedpuppy/socialapi-demo
. Ein paar bugs wurden behoben, sonst ist das identisch mit diesem demo (ich habe die repo ist wie mit, nur die bugs behoben). Ich habe eine index.html
Seite installiert die SocialProvider, zu welcher Zeit der server-Seite-app startet, und auch der rest der magic. Es läuft wunderbar auf localhost
, aber wenn ich schieben Sie es bis zu Heroku, schlägt fehl. Es wurden keine Probleme gemeldet, mit der git push
(nur das übliche "keine readme-Daten" - Warnungen).
Ich bin ratlos ich kann einfach nicht sehen, was er versucht zu; offenbar ein 404-Fehler deutet auf eine fehlende Seite, aber die app lässt keine Anrufe zu jedem HTML
Seiten, und alles, was benötigt wird, ist vorhanden (wie mein Lauf auf localhost
bestätigt).
Ich feststellen, dass dies nicht viel weiter zu gehen, nicht sehen, die eigentliche app und nicht wissen, was er zu tun versucht. Und mit keine tatsächlichen Fehler zu melden - nur ein 404 status, der es offensichtlich kann alles mögliche sein. Aber ich bin ratlos momentan, also wenn jemand irgendeinen Einblick oder eine Anregung wäre ich sehr dankbar.
- Update: ich habe ein LiveHTTPHeaders-tool zum überprüfen der Header-und eine GET-ausgegeben und nichts zurückgegeben wird (na ja, einen 404-status). Ich fange an zu vermuten, dass die Heroku-server-setup ist nicht wie eine konventionelle oder populäre Web-server, wo es eingerichtet ist zum liefern einer
index.html
oderdefault.html
Datei in der Antwort auf eine GET nur mit dem Pfad. Stattdessen fühlt es sich wie Heroku ermöglicht es Ihnen, zu erstellen, unabhängig von der Art der server-Konfiguration, die Sie wollen, und tut nichts "standardmäßig". Ich denke, dass der Grund, bekomme ich ein 404 ist, dass ich nicht tatsächlich wieder etwas - und es ist meine Verantwortung, dies zu tun. - Update (Fortsetzung): Also in meinem
Node.js
app, als auch einen server erstellen und hören von außen, ich muss auch dazu dienen, eine statische HTML-Seite für die Benutzer zu sehen. Wenn es jemand weiß, Heroku und können dies bestätigen, es wird mich auf die richtige Spur zur Lösung zu entwickeln. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hallo auch ich bekam frustrieren Sie eine Menge, während die Bereitstellung der app.
bei der Bereitstellung müssen Sie sicherstellen, dass über zwei Dinge.
1) stellen Sie den Anschluss unter Verwendung der Umgebungsvariable
var port=Number(process.env.PORT || 3000);
2) vergessen Sie nicht, gehören Procfile web: Knoten app.js(Ihre start-Datei)
Dass die demo nicht eine Knoten-app, oder wenigstens nicht verpackt den Weg heroku mag es mit ein Procfile und alles. Wenn Sie eine Knoten-app, dann wäre es-server die statischen Dateien wie pro es ist code (oder wenigstens sollte), aber heroku ist nicht ein standard-web-server für statische Seiten (wie Apache oder nginx oder was auch immer). Heroku wurde gebaut, um die Ausführung von web-apps, die im wesentlichen Ihre eigenen Server.
Wenn Sie einen node-server ausgeführt wird, wird dieser heroku-quickstart für Knoten sollte Ihnen zu helfen. https://devcenter.heroku.com/articles/nodejs
index.html
nicht geladen ist (und die ersten browserGET
scheitert), denn ich bin nicht etwas zu tun, zu dienen, dass die Datei, und Heroku nicht tun, wird es für mich, out of the box; ich brauche für das erstellen einer einfachen server, der die Antwort auf eineGET /
durch das laden derindex.html
und senden zurück. Dann sollte es funktionieren.package.json
undProcfile
s, und es wurde gebaut in Ordnung. Das problem war, dass der browser wurde die Erteilung einerGET
aber nichts in der app diente die Seite. Einmal habe ich einapp.use(express.static(__dirname)...)
, alles war gut - eine Seite wurde serviert, die 404 ging Weg, und die app funktioniert. Also vielen Dank für die Zeit nehmen, zu Antworten - wie Sie sehen, Sie waren der einzige. Cheers....Ich hatte ein ähnliches problem. Die Lösung war einfach:
1) Stellen Sie sicher, dass ein Procfile richtig geschrieben. Es sollte so Aussehen:
2) Nach drücken der code heroku, versuchen Sie den folgenden Befehl ausführen:
Hoffe, das hilft!