Nodejs

Nodejs est un logiciel permettant d'exécuter du JavaScript côté serveur, contrairement à ce qu'on a l'habitude de voir avec le javascript côté client.

L'avantage d'utiliser Nodejs est que javascript permet l'éxécution de tâches asynchrones, ce qui peut être pratique dans certaines situations. C'est de plus en plus souvent le cas avec le « nouveau » web qui arrive (html5/css3, etc.).
De plus, Nodejs permet de créer des applications « serveur » facilement grâce à des applications tierces qu'il prend en charge via un logiciel similaire à un gestionnaire de paquets.

Pré-requis

Installation

Depuis les dépôts officiels

sous Xenial, cela installe la précédente version LTS… 4.2.6 qui est supportée jusqu'à avril 2018

Installer Nodejs sous ubuntu est simple, il suffit d'installer les paquets nodejs npm.

Résumé en ligne de commande

Le résumé, à saisir dans un terminal, utilise ici la commande apt-get :

sudo apt-get update
sudo apt-get install nodejs npm
Il m'a fallu ajouter deux liens symboliques
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
sudo ln -s /usr/bin/npm /usr/local/bin/npm

Si vous souhaitez compiler des projets avec Nodejs il vous faudra installer nodejs-dev. Notez que vous n'avez pas besoin de ce paquet pour développer des projets en Javascript, il est utile en revanche si vous comptez développer des modules pour Nodejs, eux-mêmes écrits dans un autre langage (par exemple en C/C++).

Au moyen du gestionnaire de versions n

n, cf. https://github.com/tj/n, une fois installé, permet l'installation simplifié des différentes versions de node. Si besoin, installer tout d'abord curl :

sudo apt-get install curl 

puis n:

sudo curl -o /usr/local/bin/n https://raw.githubusercontent.com/visionmedia/n/master/bin/n

Puis affecter les droits à n:

sudo chmod +x /usr/local/bin/n

et enfin, installer node

sudo n stable

Depuis un PPA

Chaque nouvelle version de nodejs possède à présent son script d'installation, le travail sur les distributions est effectué ici: https://github.com/nodesource/distributions

Version 7.x

La version 7 est la dernière version en date de NodeJS mais elle n'est pas une version LTS (Long Term Support).

  • Exécutez cette commande qui va vous rajouter le ppa, sa clé et mettre à jour votre liste de paquets
curl -sL https://deb.nodesource.com/setup_7.x | sudo bash -
sudo apt-get install nodejs

Version 6.x

La version 6 n'est pas la dernière version de NodeJS mais c'est la dernière version LTS.

  • Exécutez cette commande qui va vous rajouter le ppa, sa clé et mettre à jour votre liste de paquets
curl -sL https://deb.nodesource.com/setup_6.x | sudo bash -
sudo apt-get install nodejs

Version 0.12

Chris Lea et NodeSource se sont associés pour maintenir un nouveau PPA avec des versions stables plus récentes de Nodejs

  • Exécutez cette commande qui va vous rajouter le ppa, sa clé et mettre à jour votre liste de paquets
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install nodejs

Utilisation basique

Voici un exemple d'application javascript que pourrait exécuter Nodejs:

app.js
setTimeout(function() {
console.log('Coucou'); // écrit un message dans la console au bout de deux secondes
}, 2000);
console.log('toi'); // écrit un message dans la console

Pour exécuter cette application, il vous suffit de saisir dans un terminal la commande suivante:

node app.js

Sur Ubuntu 13.04 la commande de lancement est :

nodejs app.js

Bien entendu une telle application n'a aucun intérêt, c'est juste pour vous montrer de façon rapide comment cela fonctionne.
L'idée serait plutôt de créer une application serveur dont voici un exemple :

app.js
var http = require('http');
var port = 8080;
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('Salut tout le monde !');
res.end();
}).listen(port);
console.log("Serveur tourne sur http://localhost:"+port);

Pour comprendre ce code vous devriez jeter un coup d'oeil à la documentation officielle.

Bien entendu Nodejs n'a pas uniquement vocation à créer des petits serveurs comme celui-ci. Mais pour aller plus loin il va falloir utiliser des modules.

Ajout de modules

Ajouter un module à Nodejs est extrêmement simple. Depuis un terminal tapez la ligne suivante :

npm install express

Express.js est un module qui vous évitera de réécrire le code pour un serveur http à chaque application.
N'hésitez pas à aller voir sa documentation.

De la même façon vous pourrez installer beaucoup d'autres modules, à vous de les trouver.

Désinstallation

Pour supprimer cette application, il suffit de supprimer son paquet. Selon la méthode choisie, le configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.

Voir aussi