Installation de NodeJS et de modules (Dec 2014)

De $1

Introduction

Pour installer NodeJS, aller sur le site nodejs.org et cliquer sur le bouton "install", suivre les instructions. Les cas d'erreurs possibles sont dans ce guide.

Livre gratuit sur NodeJS, en français

Installation de NodeJS et des modules express et socket.io

Quel que soit votre système d'exploitation, allez sur le site http://www.nodejs.org et suivez la procédure d'installation (click sur le bouton "install"). Installez la dernière version.

Une fois nodeJS installé, vérifiez qu'il fonctionne en tapant dans une fenêtre dos/shell la commande "node --version", cela devrait afficher quelque chose comme: "node 0.10.x". Ok, tout va bien.

 Si vous avez "command not found", n'oubliez pas que les exécutables doit être dans le PATH !

Test d'une première application NodeJS

  • Créez un fichier test.js file avec ce contenu :
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');

Sauvez le et exécutez la commande suivante :

node test.js


Vous venez juste de lancer le serveur NodeJS qui répond à cet URL : http://localhost:8124

Snap5.jpg

Ouvrez cet URL dans votre navigateur !

Vous devriez avoir :

Snap6.jpg

Vous venez d'exécuter votre première application NodeJS ;-)

Le fichier test.js contient le code pour un serveur web archi minimal qui n'est même pas capable de lire un fichier html. Il a juste renvoyé des Strings en parlant de protocole HTTP.

Installation de modules complémentaires

NodeJS est extensible grace à un système de "modules", sortes de "packages" à la linux. Lors de l'installation, si vous avez mis le répertoire d'installation dans le PATH, vous devriez avoir accès à la commande "npm" ou Node Package Manager, qui permet d'installer (il faut avoir une connexion qui fonctionne, évidemment...) des modules supplémentaires. Il en existe des centaines aujourd'hui, mais nous allons tester une installation avec deux modules populaires, afin de vérifier que tout va bien.

  • express donne la possibilité de servir des pages HTML avec CSS, JavaScript etc. Par défaut NodeJS ne sait pas faire cela. Permet aussi de faire des web services REST mais cela n'est pas étudié pendant ce cours.
  • socket.io : librairie pour les WebSockets. Donne aussi des solutions de fallbacks si le navigateur utilisé ne supporte pas les WebSockets (comet, ajax, flash sockets), permet de gérer des groupes (sortes de "salles" de chat/ sessions de jeux entre amis, etc.)

Travail à faire :

  1. Créer un répertoire "mon_projet" quelque part sur votre disque dur,
  2. Aller dans ce répertoire (cd...)
  3. Exécuter la commande "npm install express", attendre qu'elle se termine,
  4. Exécuter la commande "npm install socket.io", attendre qu'elle se termine.

ATTENTION SI PROXY NECESSAIRE (parfois le cas en entreprise, ci -dessous exemple avec le proxy internet de Peugeot-PSA) : npm config set proxy http://login:password@internetpsa.inetpsa.com:80 et aussi  npm config set https-proxy http://login:password@internetpsa.inetpsa.com:80

SI ERREUR "nodejs/windows Error: ENOENT, stat 'C:\Users\RT\AppData\Roaming\npm' sous windows, comme dans l'image ci-dessous, il faut créer à la main le répertoire manquant et relancer npm install.

 unnamed.png

Dans votre répertoire vous devriez avoir un répertoire supplémentaires intitulé "node_modules" qui contient les modules que vous venez d'ajouter à votre projet. En général on ajoute les modules par projet, non pas globalement.

Si vous développez une autre application, vous pourrez simplement copier ce répertoire si vous ne voulez pas re-télécharger les modules express et socket.io, vous pourrez éventuellement en ajouter.

Troisième cas d'erreur qui intervient lorsque vous avez déjà une installation (pas trop à jour) de Visual Studio

Si vous avez une ancienne version de VS, regardez bien de quelle version il s'agit (2012, 2013, etc.) et indiquez dans la ligne de commande npm la version. C'est indiqué ici :