#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 !

Date de publication: 27/06/2011
Mots-clefs: #outils #node.js