アプリを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=
どういう意味ですか?
ここに私のための解決策が見つかりました: 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);
});
私はアプリで同様の問題を抱えていましたが、DBの移行後に多くのオプションを試した後に問題が発生しました、私を助けたのはこれでした:
heroku restart
(Mac用Heroku toolbeltを使用)
私の場合、httpサーバースクリプトにprocess.env.PORT || 3000
を追加して解決しました。私のherokuログは「H20」エラーと503 httpステータスを報告しました。
私の場合、ローカルマシン上の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"
}
}
私の場合、Procfileは間違ったファイル(以前使用したbot.js)を指していたため、更新するとエラーはなくなりました。
私はこの問題を抱えていました、唯一の問題は私のProcfileでした私のProcfileはこのようなものでした
web : node index.js
に変更しました
web:node index.js
唯一の問題はスペースでした
私がしたようにnodemon
によってノードサーバーをローカルで起動し、ローカルで機能する場合は、npm start
を試してください。 Nodemonはエラーを出さないと言っていましたが、npm startはそれらの多くをわかりやすい方法で教えてくれたので、ここで別の投稿をフォローすることでそれらを解決できました。私はそれが誰かに役立つことを願っています。
データベース接続も確認してください。データベース接続をlocalhostから変更するのを忘れていたため、アプリがherokuにプッシュされるとアプリがクラッシュしました。
私にとっては、Package.jsonでしたが、依存関係は空でしたが、インストールしたと思っていたのです。もう一度押してください。
タイプミスがありました
const PORT = process.env.PORT||'8080';
だった
const PORT = process.env.port||'8080';
私の場合、ノードjsアプリにProcfileを追加することを拒否し、「main」:「app.js」は最初はメインとして別のjsファイルを指していたため、このエラーが発生しました。これらの変更を行うと、修正されます
私の場合、デプロイメントのためにデータベースenvを設定するのを忘れていました。このコマンドでenvを設定できます(MongoDBサーバーにmLabを使用しています)
heroku config:set MONGO_URI = 'mongodb:// address'
パスワードには%が含まれていたため、壊れました。
ポートはconfig.httpPort
に設定され、80
に解決されます。これを行うことで修正しました:
const PORT = process.env.PORT || config.httpPort;
app.listen(PORT, ...)
どうもありがとう、昨晩私は多くの時間を無駄にした。
H10エラーコードは、多くの異なるものを意味する可能性があります。私の場合、最初はHerokuがSqlite3と互換性がないことを知らなかったためでした。2回目は、開発だけでなく本番でも動作するGoogleアナリティクスで誤って更新をプッシュしたためです。
私は例外をスローするボディパーサーを使用していました
const bodyParser = require('body-Parser')
//Bodyparser Middleware
app.use(bodyparser.json())
使用する
//Bodyparser Middleware
app.use(express.json())
これで問題が解決しました
「アプリがクラッシュしました」とH10エラーと同じ上記のエラーが表示され、herokuアプリのログにエラーメッセージの理由に関連する多くの情報が表示されません。次に、herokuでdynosを再起動しましたが、セットアップ内のindex.jsファイルの1つに追加の中括弧があるというエラーが表示されました。この問題は削除され、herokuにアプリを再デプロイすると修正されました。
古いスレッドですが、私にとってはHerokuコンソールで.env
変数を設定しませんでした。