Node.js/Express sur heroku

Je suis en train de tester node.js ces derniers jours, et notamment le framework web Express – Fan de l’hébergeur Heroku, d’autant plus depuis qu’il est possible d’avoir des applications node.js (entre autres), j’ai souhaité installer une application de test en suivant ce tutorial – et tout n’a pas fonctionné du premier coup :(

En effet, pour créer mon squelette d’application « zen-hw », j’ai utilisé la commande

[julien.newton: zen-hw]$ express

qui crée par défaut une arborescence d’application Express – or par défaut le fichier app.js lancera la webapp via la commande

app.listen(3000);

qui fonctionne parfaitement en local (sauf si pow est installé, mais c’est une autre histoire) mais pas sur heroku, avec un beau crash de l’application visible via:

[julien.newton: zen-hw]$ heroku ps
Process       State               Command
------------  ------------------  ------------------------------
web.1         crashed for 8s      node app.js 

Pour éviter ce point, il suffit de modifier app.js pour chaque application Express créée via la commande express pour utiliser process.env.PORT, ce qui donne à la fin du fichier:

var port = process.env.PORT || 3210;
app.listen(port, function(){
  console.log("Listening on " + port);
});

et voilà l’application fonctionne sous heroku !

Vus : 935
Publié par Zeneffy : 18