web-dev-qa-db-ja.com

最初のHerokuデプロイが失敗しました `エラーコード= H10`

アプリをHerokuにデプロイしました。 node.js + express + socket.ioアプリで、これはpackage.jsonファイルです

{
  "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"
  }
}

これは私が得るログです:

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=

どういう意味ですか?

72
ilyo

ここに私のための解決策が見つかりました: Heroku + node.jsエラー(Webプロセスは起動後60秒以内に$ PORTにバインドできませんでした)

私の場合、process.env.PORTでアクセスできるheroku dinamicalyが設定するポートを使用する代わりに、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);
});
154
Martin Schaer

私はアプリで同様の問題を抱えていましたが、DBの移行後に多くのオプションを試した後に問題が発生しました、私を助けたのはこれでした:

heroku restart

(Mac用Heroku toolbeltを使用)

39
clarenswd

私の場合、httpサーバースクリプトにprocess.env.PORT || 3000を追加して解決しました。私のherokuログは「H20」エラーと503 httpステータスを報告しました。

5
Ewertom Moraes

私の場合、ローカルマシン上のnodeとnpmのバージョンに違いがあり、package.jsonバージョンで定義されているため、同じエラーが見つかりました。

"engines": {
  "node": "0.8",
  "npm": "1.2.x"
}

私が使用してチェックするとき

node --version : v0.10.41
npm --version : 1.4.29

package.jsonを更新するとき

 "engines": {
  "node": "0.10.41",
  "npm": "1.4.29"
}

それはうまくいきます:)

私はこの同じ問題に直面し、上記の答えはどれも私を助けませんでした。私がしたことは実行されました:

node --version

package.jsonで、ノードバージョンを含むengineセクションを追加します。

{
  "name": "myapp",
  "description": "a really cool app",
  "version": "1.0.0",
  "engines": {
    "node": "6.11.1"
  }
}
2

私の場合、Procfileは間違ったファイル(以前使用したbot.js)を指していたため、更新するとエラーはなくなりました。

2
Sina Meraji

私はこの問題を抱えていました、唯一の問題は私のProcfileでした私のProcfileはこのようなものでした

web : node index.js

に変更しました

web:node index.js

唯一の問題はスペースでした

2
Arian Nargesi

私がしたようにnodemonによってノードサーバーをローカルで起動し、ローカルで機能する場合は、npm startを試してください。 Nodemonはエラーを出さないと言っていましたが、npm startはそれらの多くをわかりやすい方法で教えてくれたので、ここで別の投稿をフォローすることでそれらを解決できました。私はそれが誰かに役立つことを願っています。

1
Erik

データベース接続も確認してください。データベース接続をlocalhostから変更するのを忘れていたため、アプリがherokuにプッシュされるとアプリがクラッシュしました。

1
lindsaymacvean

私にとっては、Package.jsonでしたが、依存関係は空でしたが、インストールしたと思っていたのです。もう一度押してください。

1
Roman

タイプミスがありました

const PORT = process.env.PORT||'8080';

だった

const PORT = process.env.port||'8080';

1
Omar

私の場合、ノードjsアプリにProcfileを追加することを拒否し、「main」:「app.js」は最初はメインとして別のjsファイルを指していたため、このエラーが発生しました。これらの変更を行うと、修正されます

1
Forest baba

私の場合、デプロイメントのためにデータベースenvを設定するのを忘れていました。このコマンドでenvを設定できます(MongoDBサーバーにmLabを使用しています)

heroku config:set MONGO_URI = 'mongodb:// address'

0
minjun youn

パスワードには%が含まれていたため、壊れました。

0
Jack Stone

ポートはconfig.httpPortに設定され、80に解決されます。これを行うことで修正しました:

const PORT = process.env.PORT || config.httpPort;

app.listen(PORT, ...)

どうもありがとう、昨晩私は多くの時間を無駄にした。

H10エラーコードは、多くの異なるものを意味する可能性があります。私の場合、最初はHerokuがSqlite3と互換性がないことを知らなかったためでした。2回目は、開発だけでなく本番でも動作するGoogleアナリティクスで誤って更新をプッシュしたためです。

0
Trevor Hauck

私は例外をスローするボディパーサーを使用していました

const bodyParser = require('body-Parser')    
//Bodyparser Middleware
app.use(bodyparser.json())

使用する

    //Bodyparser Middleware
    app.use(express.json())

これで問題が解決しました

0
S.Sid

「アプリがクラッシュしました」とH10エラーと同じ上記のエラーが表示され、herokuアプリのログにエラーメッセージの理由に関連する多くの情報が表示されません。次に、herokuでdynosを再起動しましたが、セットアップ内のindex.jsファイルの1つに追加の中括弧があるというエラーが表示されました。この問題は削除され、herokuにアプリを再デプロイすると修正されました。

0
Praveen

古いスレッドですが、私にとってはHerokuコンソールで.env変数を設定しませんでした。

0
Josh Lavely