Ich habe meine App für Heroku bereitgestellt. Es ist eine node.js + express + socket.io-App und dies ist die package.json
-Datei
{
"name": "game_test",
"author": "Ilya",
"description": "A test app for our board game",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app"
},
"dependencies": {
"express": "3.0.6",
"jade": "*",
"socket.io" : "*"
},
"engines": {
"node": "0.8.14"
}
}
Dies ist das Protokoll, das ich bekomme:
heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ Host=game-test-1.herokuapp.com fwd=37.26.146.185 dyno= queue= wait= connect= service= status=503 bytes=
heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico Host=game-test-1.herokuapp.com fwd=37.26.146.185 dyno= queue= wait= connect= service= status=503 bytes=
Was heißt das?
Für mich hier Lösung gefunden: Heroku + node.js Fehler (Web-Prozess konnte sich nicht innerhalb von 60 Sekunden nach dem Start an $ PORT binden)
In meinem Fall stürzte meine App ab, weil ich den PORT hart eingestellt hatte, anstatt den von heroku dinamicaly eingestellten Port zu verwenden, der mit process.env.PORT
erreichbar ist.
app.listen(process.env.PORT || 3000, function(){
console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env);
});
Ich hatte gerade ein ähnliches Problem mit meiner App. Ich bekam das Problem nach einer Migration der Datenbank. Nachdem ich viele Optionen ausprobiert hatte, half mir dies:
heroku restart
(Heroku Toolbelt für Mac verwenden)
in meinem Fall fügte ich process.env.PORT || 3000
zu meinem http-Server-Skript hinzu, das behoben wurde .
In meinem Fall habe ich denselben Fehler gefunden, da auf meinem lokalen Rechner ein Versionsunterschied zwischen Knoten und npm besteht und in package.json-Version definiert ist.
"engines": {
"node": "0.8",
"npm": "1.2.x"
}
wenn ich checke mit
node --version : v0.10.41
npm --version : 1.4.29
wenn ich meine package.json auf aktualisiere
"engines": {
"node": "0.10.41",
"npm": "1.4.29"
}
Es funktioniert gut :)
In meinem Fall wies mein Procfile auf die falsche Datei (bot.js, die ich zuvor verwendet habe), sodass der Fehler nach der Aktualisierung weg war.
Wenn Sie den Node Server lokal über nodemon
starten, wie ich es getan habe, und es lokal funktioniert, versuchen Sie es mit npm start
. Nodemon hat mir keine Fehler gemeldet, aber npm start hat mir eine Menge davon auf verständliche Weise erzählt und dann konnte ich sie lösen, indem ich anderen Beiträgen hier folgte. Ich hoffe es hilft jemandem.
Überprüfen Sie auch Ihre Datenbankverbindung. Ich habe vergessen, meine Datenbankverbindung von localhost zu ändern, und meine App stürzte ab, sobald sie auf heroku übertragen wurde.
Für mich war es Package.json, es war frei von Abhängigkeiten, obwohl ich dachte, ich hätte sie installiert. Also musste ich sie mit der Option --save am Ende neu installieren und überprüfen, ob sie der package.json hinzugefügt wurden Schieben Sie es erneut und es hat funktioniert.
Ich hatte einen Tippfehler
const PORT = process.env.PORT||'8080';
war früher
const PORT = process.env.port||'8080';
Ich war mit dem gleichen Problem konfrontiert und keine der obigen Antworten hat mir geholfen.
node --version
und fügen Sie in der package.json den Engines-Abschnitt mit Ihrer Knotenversion hinzu:
{
"name": "myapp",
"description": "a really cool app",
"version": "1.0.0",
"engines": {
"node": "6.11.1"
}
}
In meinem eigenen Fall habe ich diesen Fehler erhalten, weil ich mich weigere, eine Procfile zu meiner Knoten-Js-App hinzuzufügen, und mein "main": "app.js" zeigte anfangs auf eine andere js-Datei als main. Dadurch werden diese Probleme für mich behoben
Ich hatte dieses Problem, das einzige Problem war mein Procfile, mein Procfile war so
web : node index.js
und ich wechselte zu
web:node index.js
das einzige Problem waren Leerzeichen
In meinem Fall habe ich vergessen, die Datenbank env für die Bereitstellung festzulegen Sie können env mit diesem Befehl festlegen (Ich verwende mLab für den MongoDB-Server.)
heroku config: setze MONGO_URI = 'mongodb: // address'
Passwort enthielt ein% brach es für mich.
Mein Port wurde auf config.httpPort
gesetzt, der in 80
aufgelöst wird. Ich habe es so behoben:
const PORT = process.env.PORT || config.httpPort;
app.listen(PORT, ...)
Vielen Dank, ich habe letzte Nacht viele Stunden verschwendet.
Der H10-Fehlercode kann viele verschiedene Bedeutungen haben. In meinem Fall war das erste Mal, dass ich nicht wusste, dass Heroku nicht mit Sqlite3 kompatibel ist, das zweite Mal, dass ich versehentlich ein Update mit Google Analytics veröffentlicht habe, das sowohl in der Entwicklung als auch in der Produktion funktioniert.
ich habe Body-Parser verwendet, der eine Ausnahme auslöst
const bodyParser = require('body-Parser')
//Bodyparser Middleware
app.use(bodyparser.json())
anstatt zu verwenden
//Bodyparser Middleware
app.use(express.json())
dies löste mein Problem
Ich habe den gleichen Fehler wie "App abgestürzt" und H10-Fehler erhalten und die Heroku-App-Protokolle zeigen nicht viele Informationen im Zusammenhang mit dem Fehler msg-Gründe an. Dann habe ich die Dynos in Heroku neu gestartet, und dann wurde der Fehler angezeigt, dass eine zusätzliche geschweifte Klammer in einer der Dateien index.js in meinem Setup angegeben wurde. Das Problem wurde behoben, sobald es entfernt und die App auf Heroku erneut bereitgestellt wurde.
Ich hoffe, dies wird für jemanden hilfreich sein, der das gleiche Problem hat.
Älterer Thread, aber für mich habe ich meine .env
-Vars nicht in der Heroku-Konsole festgelegt.