jeudi 14 février 2013

Démarrer un projet NodeJS et Express

Je vais dévier un peu du sujet de base de ce blog, qui est censé être complètement dédié à java et a la programmation orienté objet pour parler d'une technologie qui a le vent en poupe.
Cette technologie c'est nodeJS, que je définirais pour le moment comme un serveur d'application pour javascript basé sur l'interpreteur javascript de Chrome.

Le site nodeJS : http://nodejs.org/

Une fois l'installation terminé, on a accès a node.
L'execution d'un programme se fait de la façon suivante :

node monscript.js

Bon c'est pas le but de ce post, mais juste histoire de mettre le pied a l’étrier de ceux qui ne connaîtraient pas du tout nodeJS, voila comment réaliser un petit 'HelloWorld'.
Ouvrez un editeur de texte et tapez la ligne suivante :

console.log('Hello world');
Enregistrez le fichier sous le nom HelloWorld.js, puis exécutez node :
node HelloWorld.js
Normalement vous devriez voir apparaître Hello world dans votre console, si ce n'est pas le cas c'est probablement que le répertoire bin de node n'est pas dans votre PATH.

Node s'accompagne de npm, qui est le gestionnaire de package de nodejs, il permet l'installation de modules nodejs très simplement.

Express est l'un de ces nombreux module disponible via npm.
Express est défini comme un framework d'application web, dans la mesure ou nodejs n'est pas un serveur web, il est judicieux d'utiliser Express afin d'eviter (entre autres choses) de coder un serveur http.

Apres une rapide introduction rentrons dans le vif du sujet.
D'abord l'installation d'Express :

npm install -g express
Ici on demande a npm d'installer Express de maniere "générale" (-g), n'ayant pas spécifié de version a priori il installe la derniere version stable.

Nous allons maintenant utiliser Express afin de créer notre application.
express -s -H mywebapp
Ici on demande à express de nous créer le projet 'mywebapp', avec gestion des sessions web (-s) et l'utilisation du moteur de template Hogan (-H).
Je vous invite à taper express --help pour voir les differentes options qui s'offrent à vous.

Une fois exécuté  le répertoire mywebapp sera créé, mettez vous a l’intérieur de se répertoire  vous remarquerez plusieurs fichiers et sous répertoire, il s'agit du squelette de votre projet web.
Entre autre, il y a un fichier app.js qui est le point d'entré de l'application, mais nous y reviendrons.
Pour le moment on va s’intéresser au fichier package.json qui lui défini les dépendances de notre projet.

A ce stade le projet n'est pas encore fonctionnelle, on doit encore demander a npm d'installer les module dont notre projet dépend.
On se place dans le répertoire mywebapp, afin d’exécuter npm :
npm install 
Vous remarquerez que cette fois on ne spécifie aucun nom de module, en fait npm va lire le fichier package.json et installer les modules qui y sont spécifié.
Cette fois il ne les installent pas de maniere "générale", mais de maniere specifique au projet "mywebapp".

On peut alors vérifier que dans le répertoire mywebapp/node_modules sont bien présent express et hjs.

A partir de la votre projet est fonctionnelle, pour le vérifier, dans le repertoire mywebapp tapez:
node app.js

Par defaut express ecoute sur le port 3000, ouvrez un navigateur et tapez l'url :
http://localhost:3000/

Vous devriez obtenir la page d'accueil de votre premiere application nodejs express !!
La webapp est prête à "accueillir" votre code...

Voila le but de cette article n’étant pas de détailler le code, je vais m’arrêter la.
Mais je vous invite à analyser un peu le code de app.js, et voir comment de app.js une requete sur localhost:3000/ aboutit au fichier views/index.hjs, en tant que developpeur web on s'y retrouve assez vite.