Saya menerapkan aplikasi saya ke Heroku. Ini adalah aplikasi node.js + express + socket.io dan ini adalahpackage.json
filenya
{
"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"
}
}
Ini log yang saya dapatkan:
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=
Apa artinya?
heroku restart
untuk meluncurkannya lagi sehingga Anda dapat melihatnya macet lagi.Jawaban:
Menemukan solusi untuk saya di sini: Kesalahan Heroku + node.js (Proses web gagal mengikat $ PORT dalam waktu 60 detik setelah peluncuran)
Dalam kasus saya, aplikasi saya macet karena saya sulit mengatur PORT, alih-alih menggunakan port yang diatur secara dinamis oleh heroku, yang dapat diakses dengan
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); });
sumber
app
adalah contoh ekspresSaya baru saja mengalami masalah serupa dengan aplikasi saya, saya mendapat masalah setelah migrasi DB, setelah mencoba banyak opsi, salah satu yang membantu saya adalah ini:
(Menggunakan sabuk alat Heroku untuk mac)
sumber
Saya punya masalah ini, satu-satunya masalah adalah Procfile saya seperti ini
dan saya berubah menjadi
satu-satunya masalah adalah spasi
sumber
Dalam kasus saya, saya menemukan kesalahan yang sama karena ada perbedaan versi node dan npm di mesin lokal saya dan didefinisikan dalam versi package.json.
"engines": { "node": "0.8", "npm": "1.2.x" }
ketika saya memeriksa menggunakan
node --version : v0.10.41 npm --version : 1.4.29
ketika saya memperbarui package.json saya ke
"engines": { "node": "0.10.41", "npm": "1.4.29" }
Ini berfungsi dengan baik :)
sumber
dalam kasus saya menambahkan
process.env.PORT || 3000
skrip server http saya, diselesaikan. Log heroku saya melaporkan kesalahan 'H20' dan status http 503.sumber
Dalam kasus saya, Procfile saya menunjuk ke file yang salah (bot.js yang sebelumnya saya gunakan) jadi setelah saya memperbaruinya, kesalahan itu hilang.
sumber
setelah menggunakan hapi18, saya menemukan mengambil bidang "host" dan menyetel port ke:
port: process.env.PORT || 5000
berhasil.sumber
Periksa juga koneksi database Anda. Saya lupa mengubah koneksi database saya dari localhost dan ini membuat aplikasi saya crash begitu didorong ke heroku.
sumber
Saya menghadapi masalah yang sama dan tidak ada jawaban di atas yang membantu saya. Apa yang saya lakukan adalah lari:
dan di package.json tambahkan bagian mesin dengan versi node Anda:
{ "name": "myapp", "description": "a really cool app", "version": "1.0.0", "engines": { "node": "6.11.1" } }
sumber
Jika Anda secara lokal memulai server node oleh
nodemon
, seperti yang saya lakukan, dan berfungsi secara lokal, cobanpm start
. Nodemon memberi tahu saya tidak ada kesalahan, tetapi npm start memberi tahu saya banyak kesalahan dengan cara yang dapat dimengerti dan kemudian saya bisa menyelesaikannya dengan mengikuti posting lain di sini. Saya harap ini membantu seseorang.sumber
Thread Lama, tapi saya memperbaiki masalah ini dengan mengatur PORT konstan ke process.env.PORT ||
Untuk beberapa alasan aneh, dia ingin mencari Env dulu.
sumber
Dalam kasus saya sendiri, saya mendapatkan kesalahan ini karena saya menolak untuk menambahkan Procfile ke aplikasi node js saya dan "main": "app.js" saya awalnya menunjuk ke file js lain sebagai main. jadi melakukan chnages ini memperbaikinya untuk saya
sumber
Saya salah ketik
const PORT = process.env.PORT||'8080';
dulu
const PORT = process.env.port||'8080';
sumber
Dalam kasus saya, saya lupa menyetel env database untuk penerapan. Anda dapat mengatur env dengan perintah ini (saya menggunakan mLab untuk server MongoDB)
konfigurasi heroku: set MONGO_URI = 'mongodb: // alamat'
sumber
Bagi saya itu Package.json, itu kosong dari dependensi meskipun saya pikir saya menginstalnya .. jadi saya harus menginstalnya kembali dengan opsi --save pada akhirnya dan memverifikasi bahwa mereka telah ditambahkan ke package.json .. dan kemudian dorong lagi dan berhasil.
sumber
Dalam kasus saya, tidak ada perintah start di bagian skrip
package.json
file. Ketika saya membuatpackage.json
file dengannpm init
saya tidak membuat perintah skrip start. Jadi saya pergi kepackage.json
file, di bawah skrip saya menambahkan entri baru:"scripts": { "start": "node index.js" },
Menyimpannya dan mengunggahnya ke Heroku dan berhasil
sumber
Kata sandi berisi% memecahkannya untuk saya.
sumber
Port saya diatur ke
config.httpPort
mana memutuskan ke80
. Saya memperbaikinya dengan melakukan ini:const PORT = process.env.PORT || config.httpPort; app.listen(PORT, ...)
Terima kasih banyak, saya menghabiskan banyak waktu tadi malam.
sumber
Kode kesalahan H10 bisa berarti banyak hal berbeda. Dalam kasus saya, pertama kali karena saya tidak tahu bahwa Heroku tidak kompatibel dengan Sqlite3, yang kedua adalah karena saya secara tidak sengaja mendorong pembaruan dengan analisis Google yang bekerja dalam pengembangan dan produksi.
sumber
Saya mendapatkan kesalahan yang sama di atas sebagai "aplikasi rusak" dan kesalahan H10 dan log aplikasi heroku tidak menunjukkan banyak info terkait dengan alasan pesan kesalahan. Kemudian saya memulai ulang dynos di heroku dan kemudian menunjukkan kesalahan yang mengatakan kurung kurawal tambahan di salah satu file index.js di pengaturan saya. Masalah diperbaiki setelah dihapus dan diterapkan ulang aplikasi di heroku.
sumber
Utas yang lebih lama, tetapi bagi saya, saya tidak mengatur
.env
vars saya di konsol Heroku.sumber
saya menggunakan body-Parser yang membuang pengecualian
const bodyParser = require('body-Parser') //Bodyparser Middleware app.use(bodyparser.json())
daripada menggunakan
//Bodyparser Middleware app.use(express.json())
ini menyelesaikan masalah saya
sumber
Saya ingin mendaftar di sini apa solusi saya untuk kesalahan ini yang merupakan file sederhana yang tidak diperbarui ke Github.
Saya memiliki proyek tumpukan penuh, dan file saya terstruktur baik direktori root untuk backend dan klien untuk frontend (saya menggunakan React.js). Semua bermuara pada fakta bahwa saya secara keliru mendorong folder klien hanya ke Github dan semua perubahan saya yang mengalami kesalahan (kehilangan koma dalam contoh objek di index.js saya) tidak diperbarui di sisi backend. Karena Heroku ini mengambil semua pembaruan dari Github Repository, saya tidak dapat mengakses server saya dan kesalahan terus berlanjut. Kemudian yang harus saya lakukan adalah berkomitmen dan mendorong ke direktori root dan memperbarui semua perubahan proyek dan semuanya kembali berfungsi lagi.
sumber
Dalam kasus saya, saya memiliki kode = H10 dan status = 503 karena Procfile saya:
dan saya termasuk / membangun di Gitignore
sumber
Saya berjuang dengan kesalahan yang sama selama berjam-jam, tetapi saya bisa menyelesaikannya. Saya menginstal multer dan aws-sdk sebagai devDependencies secara tidak sengaja, bukan hanya dependensi. Jadi, siapa pun yang memiliki kesalahan yang sama, periksa kembali file package.json Anda.
Juga, tip kecil untuk properti mesin di 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" }
sumber
Saya menggunakan kerangka kerja python Django ketika saya mendapatkan kesalahan ini karena saya lupa untuk memasukkan nama aplikasi saya
web: gunicorn plaindjango.wsgi:application --log-file -
sebagai gantinyaplaindjango
sumber