Wdrożyłem moją aplikację w Heroku. Jest to aplikacja node.js + express + socket.io i to jest package.json
plik
{
"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"
}
}
Oto dziennik, który otrzymuję:
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=
Co to znaczy?
heroku restart
uruchom go ponownie, aby móc ponownie obejrzeć awarię.Odpowiedzi:
Znalazłem rozwiązanie dla mnie tutaj: Błąd Heroku + node.js (proces sieciowy nie mógł połączyć się z $ PORT w ciągu 60 sekund od uruchomienia)
W moim przypadku moja aplikacja uległa awarii, ponieważ trudno było ustawić PORT, zamiast używać portu, który ustawia dinamicaly heroku, do którego można uzyskać dostęp za pomocą
process.env.PORT
app.listen(process.env.PORT || 3000, function(){ console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env); });
źródło
Właśnie miałem podobny problem z moją aplikacją, mam problem po migracji bazy danych, po wypróbowaniu wielu opcji, pomogło mi to:
(Korzystanie z paska narzędzi Heroku dla systemu Mac)
źródło
W moim przypadku znalazłem ten sam błąd, ponieważ istnieje różnica wersji węzła i npm na moim komputerze lokalnym i zdefiniowana w wersji package.json.
"engines": { "node": "0.8", "npm": "1.2.x" }
kiedy sprawdzam za pomocą
node --version : v0.10.41 npm --version : 1.4.29
kiedy zaktualizuję plik package.json do
"engines": { "node": "0.10.41", "npm": "1.4.29" }
To działa dobrze :)
źródło
w moim przypadku rozwiązane dodanie
process.env.PORT || 3000
do mojego skryptu serwera http. Mój dziennik heroku zgłosił błąd „H20” i stan 503 http.źródło
Miałem ten problem, jedynym problemem było to, że mój Procfile wyglądał tak
i zmieniłem na
jedynym problemem były spacje
źródło
W moim przypadku mój plik Procfile wskazywał na niewłaściwy plik (bot.js, którego wcześniej użyłem), więc po zaktualizowaniu błąd zniknął.
źródło
po użyciu hapi18 znajduję pole „host” i ustawiam port na:
port: process.env.PORT || 5000
załatwił sprawę.źródło
Sprawdź także połączenie z bazą danych. Zapomniałem zmienić połączenie z bazą danych z lokalnego hosta i spowodowało to awarię mojej aplikacji po jej przekazaniu do heroku.
źródło
Zmierzyłem się z tym samym problemem i żadna z powyższych odpowiedzi nie pomogła mi. To, co zrobiłem, to:
aw pliku package.json dodaj sekcję silników z wersją Twojego węzła:
{ "name": "myapp", "description": "a really cool app", "version": "1.0.0", "engines": { "node": "6.11.1" } }
źródło
Stary wątek, ale rozwiązuję ten problem, ustawiając stałą PORT na process.env.PORT ||
Z jakiegoś dziwnego powodu chciał najpierw przeszukać Env.
źródło
W moim przypadku otrzymałem ten błąd, ponieważ odmawiam dodania Procfile do mojej aplikacji node js, a mój „main”: „app.js” początkowo wskazywał na inny plik js jako główny. więc robiąc te zmiany, napraw to dla mnie
źródło
Miałem literówkę
const PORT = process.env.PORT||'8080';
był
const PORT = process.env.port||'8080';
źródło
W moim przypadku zapomniałem ustawić środowisko bazy danych do wdrożenia. możesz ustawić env za pomocą tego polecenia (używam mLab dla serwera MongoDB)
heroku config: set MONGO_URI = 'mongodb: // address'
źródło
Dla mnie był to Package.json, który był pusty z zależności, mimo że myślałem, że je zainstalowałem ... więc musiałem ponownie je zainstalować z opcją --save na końcu i sprawdzić, czy zostały dodane do package.json ... a następnie naciśnij go ponownie i zadziałało.
źródło
Jeśli lokalnie uruchamiasz serwer węzłów
nodemon
, tak jak ja, i działa lokalnie, spróbujnpm start
. Nodemon nie mówił mi żadnych błędów, ale npm start podał mi wiele z nich w zrozumiały sposób i mogłem je rozwiązać, śledząc kolejne posty tutaj. Mam nadzieję, że komuś to pomoże.źródło
W moim przypadku nie było polecenia start w sekcji script
package.json
pliku. Kiedy tworzyłempackage.json
plik za pomocąnpm init
, nie utworzyłem polecenia startowego skryptu. Poszedłem więc dopackage.json
pliku, pod skryptami dodałem nowy wpis:"scripts": { "start": "node index.js" },
Zapisałem go i przesłano do Heroku i zadziałało
źródło
Hasło zawierało% zepsute dla mnie.
źródło
Mój port został ustawiony, na
config.httpPort
który jest ustawiony na80
. Naprawiłem to, robiąc to:const PORT = process.env.PORT || config.httpPort; app.listen(PORT, ...)
Wielkie dzięki, zmarnowało mi to wiele godzin ostatniej nocy.
źródło
Kod błędu H10 może oznaczać wiele różnych rzeczy. W moim przypadku pierwszy raz był taki, że nie wiedziałem, że Heroku nie jest kompatybilny z Sqlite3, drugi raz dlatego, że przypadkowo pchnąłem aktualizację z Google Analytics działającą zarówno w fazie rozwoju, jak i produkcji.
źródło
Otrzymałem ten sam błąd jak „awaria aplikacji” i błąd H10, a dzienniki aplikacji heroku nie pokazują zbyt wielu informacji związanych z przyczynami komunikatu o błędzie. Następnie ponownie uruchomiłem hamownie w heroku, a następnie pokazał błąd informujący o dodatkowym nawiasie klamrowym w jednym z plików index.js w mojej konfiguracji. Problem został rozwiązany po usunięciu i ponownym wdrożeniu aplikacji na heroku.
źródło
Starszy wątek, ale dla mnie nie ustawiłem
.env
vars w konsoli Heroku.źródło
Używałem Parsera treści, które rzucają wyjątek
const bodyParser = require('body-Parser') //Bodyparser Middleware app.use(bodyparser.json())
intead użytkowania
//Bodyparser Middleware app.use(express.json())
to rozwiązało mój problem
źródło
Chcę się tutaj zarejestrować, jakie było moje rozwiązanie tego błędu, który był prostym plikiem niezaktualizowanym na Github.
Mam projekt z pełnym stosem, a moje pliki mają strukturę zarówno katalogu głównego dla zaplecza, jak i klienta dla interfejsu (używam React.js). Wszystko sprowadzało się do tego, że omyłkowo wypychałem folder klienta tylko do Github, a wszystkie moje zmiany, które miały błąd (brakowało przecinka w instancji obiektu w moim index.js), nie zostały zaktualizowane po stronie zaplecza. Ponieważ Heroku pobiera wszystkie aktualizacje z repozytorium Github, nie mogłem uzyskać dostępu do mojego serwera i błąd się powtarzał. Potem wszystko, co musiałem zrobić, to zatwierdzić i wypchnąć do katalogu głównego i zaktualizować wszystkie zmiany w projekcie i wszystko wróciło do pracy.
źródło
W moim przypadku miałem kod = H10 i status = 503, ponieważ mój plik Procfile:
i włączone / build w .gitignore
źródło
Zmagam się z tym samym błędem godzinami, ale udało mi się go rozwiązać. Przez pomyłkę zainstalowałem multer i aws-sdk jako devDependencies, a nie tylko zależności. Tak więc każdy, kto ma ten sam błąd, po prostu dwukrotnie sprawdź plik package.json.
Również mała wskazówka dotycząca właściwości silnika w pliku package.json.
enter code here //The greater or equal operators will make sure that you use the right node //version //even if your current node is greater version than npm node "engines": { "node": ">= 0.8.14" }, //insted of "engines": { "node": "0.8.14" }
źródło
Wdrażałem framework Python Django, kiedy dostałem ten błąd, ponieważ zapomniałem podać nazwę mojej aplikacji
web: gunicorn plaindjango.wsgi:application --log-file -
zamiastplaindjango
źródło