J'ai déployé mon application sur Heroku. C'est une application node.js + express + socket.io et c'est le package.json
fichier
{
"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 j'obtiens:
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?
heroku restart
pour le relancer afin de pouvoir le voir se bloquer à nouveau.Réponses:
Solution trouvée pour moi ici: Erreur Heroku + node.js (le processus Web n'a pas pu se lier à $ PORT dans les 60 secondes suivant le lancement)
Dans mon cas, mon application s'est plantée parce que j'avais du mal à configurer le PORT, au lieu d'utiliser le port défini par heroku dinamicaly, auquel vous pouvez accéder 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); });
la source
Je viens d'avoir un problème similaire avec mon application, j'ai eu le problème après une migration de la base de données, après avoir essayé de nombreuses options, celle qui m'a aidé était la suivante:
(Utilisation de la ceinture d'outils Heroku pour Mac)
la source
Dans mon cas, j'ai trouvé la même erreur car il y a une différence de version de 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 vers
"engines": { "node": "0.10.41", "npm": "1.4.29" }
Ça fonctionne bien :)
la source
dans mon cas, ajouter
process.env.PORT || 3000
à mon script de serveur http, résolu. Mon journal heroku a signalé une erreur «H20» et un statut http 503.la source
J'ai eu ce problème, le seul problème était que mon Procfile était comme ça
et j'ai changé pour
le seul problème était les espaces
la source
Dans mon cas, mon Procfile pointait vers le mauvais fichier (bot.js que j'avais précédemment utilisé) donc une fois que je l'ai mis à jour, l'erreur a disparu.
la source
en utilisant hapi18, je découvre que je prends le champ "host" et que je règle le port sur:
port: process.env.PORT || 5000
a fait l'affaire.la source
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 planté mon application une fois qu'elle a été poussée vers heroku.
la source
J'ai été confronté à ce même problème et aucune des réponses ci-dessus ne m'a aidé. Ce que j'ai fait, c'est courir:
et dans le package.json, ajoutez la section moteurs avec votre version de nœud:
{ "name": "myapp", "description": "a really cool app", "version": "1.0.0", "engines": { "node": "6.11.1" } }
la source
Old Thread, mais je corrige ce problème en définissant la constante PORT sur process.env.PORT ||
Pour une raison étrange, il voulait d'abord rechercher Env.
la source
Dans mon propre cas, j'ai eu cette erreur parce que je refuse d'ajouter un Procfile à mon application node js et que mon "main": "app.js" pointait initialement vers un autre fichier js comme main. alors faire ces chnages le réparer pour moi
la source
J'ai eu une faute de frappe
const PORT = process.env.PORT||'8080';
était
const PORT = process.env.port||'8080';
la source
Dans mon cas, j'ai oublié de définir l'environnement de base de données pour le déploiement. vous pouvez définir env par cette commande (j'utilise mLab pour le serveur MongoDB)
heroku config: set MONGO_URI = 'mongodb: // adresse'
la source
Pour moi, c'était Package.json, il était vide des dépendances même si je pensais les avoir installés .. donc j'ai dû les réinstaller avec l'option --save à la fin et vérifier qu'ils avaient été ajoutés au package.json .. et ensuite pousser à nouveau et cela a fonctionné.
la source
Si vous démarrez localement le serveur de nœuds
nodemon
, comme je l'ai fait, et que cela fonctionne localement, essayeznpm start
. Nodemon ne me disait aucune erreur, mais npm start m'en a dit beaucoup de manière compréhensible et je pourrais ensuite les résoudre en suivant un autre article ici. J'espère que cela aide quelqu'un.la source
Dans mon cas, il n'y avait pas de commande de démarrage dans la section script du
package.json
fichier. Lorsque j'ai créé lepackage.json
fichier avec,npm init
je n'ai pas créé de commande de script de démarrage. Je suis donc allé aupackage.json
fichier, sous scripts j'ai ajouté une nouvelle entrée:"scripts": { "start": "node index.js" },
Je l'ai enregistré et téléchargé sur Heroku et cela a fonctionné
la source
Le mot de passe contenait un% cassé pour moi.
la source
Mon port a été défini sur
config.httpPort
lequel se résout à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.
la source
Le code d'erreur H10 peut signifier de nombreuses 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 parce que j'avais accidentellement poussé une mise à jour avec Google Analytics travaillant en développement ainsi qu'en production.
la source
J'ai eu la même erreur ci-dessus que "l'application a planté" et l'erreur H10 et les journaux de l'application heroku ne montrent pas beaucoup d'informations liées aux raisons du msg d'erreur. Ensuite, j'ai redémarré les dynos dans heroku, puis il a montré l'erreur indiquant 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.
la source
Fil plus ancien, mais pour moi, je n'ai pas défini mes
.env
vars dans la console Heroku.la source
J'utilisais body-Parser qui jette une exception
const bodyParser = require('body-Parser') //Bodyparser Middleware app.use(bodyparser.json())
au lieu d'utiliser
//Bodyparser Middleware app.use(express.json())
cela a résolu mon problème
la source
Je veux enregistrer ici quelle a été ma solution à cette erreur qui était un simple fichier non mis à jour sur Github.
J'ai un projet full stack et mes fichiers sont structurés à la fois dans le répertoire racine pour le backend et le client pour le frontend (j'utilise React.js). Tout se résumait au fait que je poussais par erreur le dossier client uniquement vers Github et que toutes mes modifications qui comportaient une erreur (il manquait une virgule dans l'instance d'un objet dans mon index.js) n'étaient pas mises à jour dans le backend. Puisque cet Heroku récupère toutes les mises à jour du référentiel Github, je n'ai pas pu accéder à mon serveur et l'erreur a persisté. Ensuite, tout ce que j'avais à faire était de valider et de pousser vers le répertoire racine et de mettre à jour toutes les modifications du projet et tout est revenu au travail.
la source
Dans mon cas, j'avais le code = H10 et le statut = 503 car mon Procfile:
et j'ai inclus / construit dans .gitignore
la source
Je lutte avec la même erreur pendant des heures, mais j'ai pu la résoudre. J'ai installé multer et aws-sdk en tant que devDependencies par erreur, au lieu de simples dépendances. Donc, quiconque a la même erreur, revérifiez simplement votre fichier package.json.
Aussi, une petite astuce pour la propriété du moteur dans 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" }
la source
J'étais en train de déployer le framework python Django lorsque j'ai eu cette erreur car j'ai oublié de mettre le nom de mon application
web: gunicorn plaindjango.wsgi:application --log-file -
au lieu deplaindjango
la source