web-dev-qa-db-fra.com

Premier déploiement Heroku a échoué `code d'erreur = H10`

J'ai déployé mon application sur Heroku. C'est une application node.js + express + socket.io et voici le fichier 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"
  }
}

Voici le journal que je reçois:

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=

Qu'est-ce que ça veut dire?

59
ilyo

Solution trouvée pour moi ici: Erreur Heroku + node.js (le processus Web n'a pas réussi à se lier à $ PORT dans les 60 secondes du lancement)

Dans mon cas, mon application est tombée en panne car j’ai eu du mal à configurer PORT, au lieu d’utiliser le port défini par heroku dinamicaly, accessible avec 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);
});
147
Martin Schaer

Je viens d'avoir un problème similaire avec mon application, je l'ai eu après une migration de la base de données, après avoir essayé plusieurs options, celle qui m'a aidé était la suivante:

heroku restart

(Utilisation de Heroku toolbelt pour mac)

29
clarenswd

dans mon cas, l'ajout de process.env.PORT || 3000 à mon script de serveur http, résolu… .. Mon journal heroku a signalé une erreur 'H20' et un statut 503 http.

5
Ewertom Moraes

Dans mon cas, j'ai trouvé la même erreur car il existe une différence de version entre node et npm sur ma machine locale et définie dans la version package.json.

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

quand je vérifie en utilisant

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

quand je mets à jour mon package.json 

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

Ça fonctionne bien :)

3

Dans mon cas, mon fichier Procfile pointait sur le mauvais fichier (bot.js que j’avais précédemment utilisé). Ainsi, une fois mis à jour, l’erreur avait disparu.

2
Sina Meraji

Si vous démarrez localement le serveur de nœud avec nodemon, comme je l’ai fait, et que cela fonctionne localement, essayez npm start. Nodemon ne me disait aucune erreur, mais npm start m'en a dit beaucoup de manière compréhensible et je pourrais alors les résoudre en suivant un autre post ici. J'espère que ça aide à quelqu'un.

1
Erik

Vérifiez également votre connexion à la base de données. J'ai oublié de changer ma connexion à la base de données de localhost et cela a bloqué mon application une fois qu'elle a été poussée à heroku. 

1
lindsaymacvean

Pour moi, c'était Package.json, il était vide de dépendances même si je pensais les avoir installées .. je devais donc les réinstaller avec l'option --save à la fin et vérifier qu'elles avaient été ajoutées au package.json .. Poussez à nouveau et cela a fonctionné.

1
Roman

J'ai eu une faute de frappe 

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

l'habitude d'être 

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

1
Omar

J'ai fait face au même problème et aucune des réponses ci-dessus ne m'a aidé . Ce que j'ai fait était de courir:

node --version

et dans le package.json, ajoutez la section moteurs avec la version de votre noeud:

{
  "name": "myapp",
  "description": "a really cool app",
  "version": "1.0.0",
  "engines": {
    "node": "6.11.1"
  }
}
1
Martin De Simone

Dans mon cas, j’ai eu cette erreur parce que je refusais d’ajouter un Procfile à mon noeud js app et que mon "main": "app.js" pointait initialement vers un autre fichier js comme main. donc faire ces changements le faire réparer pour moi

1
Forest baba

J'ai eu ce problème, le seul problème était mon Procfile mon Procfile était comme ça

web : node index.js

et j'ai changé pour

web:node index.js

le seul problème était les espaces

1
Arian Nargesi

Dans mon cas, j’ai oublié de définir la base de données env pour le déploiement . Vous pouvez définir env avec cette commande (J'utilise mLab pour le serveur MongoDB)

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

0
minjun youn

Le mot de passe contenait un% le cassé pour moi.

0
Jack Stone

Mon port a été défini sur config.httpPort, lequel est résolu en 80. Je l'ai corrigé en faisant ceci:

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

app.listen(PORT, ...)

Merci beaucoup, cela m'a fait perdre beaucoup d'heures hier soir.

0
Tamal Anwar

Le code d'erreur H10 peut signifier beaucoup de choses différentes. Dans mon cas, la première fois, c’était parce que je ne savais pas que Heroku n’était pas compatible avec Sqlite3; la deuxième fois, c’était parce que j’ai accidentellement poussé une mise à jour avec Google Analytics, tant en développement qu’en production.

0
Trevor Hauck

j'utilisais body-Parser qui jette une exception

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

à la place d'utiliser

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

cela a résolu mon problème

0
S.Sid

J'ai eu la même erreur ci-dessus que "l'application s'est écrasée" et l'erreur H10 et les journaux de l'application heroku ne montrent pas beaucoup d'informations liées aux raisons du message d'erreur. Ensuite, j'ai redémarré le dynos dans heroku, puis une erreur s'affichait pour indiquer une accolade supplémentaire dans l'un des fichiers index.js de ma configuration. Le problème a été résolu une fois qu'il a été supprimé et redéployé l'application sur heroku.

J'espère que cela sera utile à quelqu'un confronté au même problème.

0
Praveen

Fil plus ancien, mais pour moi, je n'ai pas défini mes variables .env dans la console Heroku.

0
Josh Lavely