Qu'est ce que nodejs

Nodejs est une plateforme de développement pour le langage de programmation javascript. Avec Nodejs, vous pouvez éxécuter les programmes écrits en javascript autrefois reservés à des scripts intégrés dans des pages html.
Nodejs est pour javascript ce que .NET est pour c# ou jdk pour java.
Nodejs est apparu en 2009 et utilise le moteur V8 javascript de Google basé sur la version 6 de ECMAScript. C'est la version 6 de javascript appelé ES6 ou ES2015. Visitez le site nodejs pour plus de détails.

Programmation asynchrone nodejs

Nodejs est basé sur la programmation asynchrone c'est à dire non bloqué. Toutes les requêtes s'éxécutent dans un seul thread et nodejs utilise la gestion d'évènements pour répondre à chaque requête.Dans cette programmation asynchrone, chaque requête contient un callback (une founction) qui sera exécuté une fois la requête est terminée. Pour accéder aux ressources comme disque ou réseau qui sont en général bloquant, nodejs utilise la librairie libuv pour assurer son appel asynchrone.

Type d'application sur Nodejs

La plateforme nodejs a beaucoup évolué depuis 2009. Sur nodejs, vous pouvez développer des applications mobile, des application Web, des applications console et des application GUI. Le Framework ionic vous permet de développer des applications mobile sur nodejs pour Android, Ios et Windows phone. Le framework electron vous permet de développer des application GUI. Atom et Visual Code ont été developpées avec electron. D'autres frameworks se sont développés pour permettre à la communauté de réaliser les applications web et REST. Pour développer des applications Front-end (ce qui est visible par l'utilisateur) vous pouvez utiliser les frameworks comme angularjs, angular2, Vue, React et Backbonejs. Pour développer des applications Back-end (ce que l'utilisateur ne voit pas) vous pouvez utiliser les frameworks comme sailsjs, totaljs, meteor, loopback, Koajs etc..

Quelques CMS sous nodejs

Plusieurs CMS se sont développés sous la plateforme nodejs.

  1. Ghost est un CMS qui vous permet de créer votre blog sur la plateform nodejs. le blog blog.bef-technology.com a été crée avec ghost. Vous pouvez acheter des templates sur Ghost themes
  2. keystonejs vous permet de créer votre web sur nodejs avec la base de donnée mongodb
  3. Pencilblue
  4. Apostrophecms
  5. Endurojs
  6. Strapi

Installation de nodejs

Le framework nodejs est multi-plateforme. Vous pouvez l'installer sur Windows, Mac, linux et Raspberry. Visitez la page officielle de téléchargement pour plus de détails https://nodejs.org/en/download/
Une fois l'installation terminée, vous pouvez exécuter les commandes suivantes dans un terminal pour vérifier si nodejs est bien installé

 node --version
 v8.9.3

cette commande affichera la version de nodejs que vous avez installée. Dans mon cas c'est la version v8.9.3 de nodejs qui est installée. Nodejs est en général installé avec npm qui est le gestionnaire de librairies. La commande suivante affichera la version de npm.

npm --version
5.6.0

Exemple d'application web nodejs

Nous allons créer une application web nodejs avec express. Exécutez les commandes suivantes pour créer votre répertoire de travail.

mkdir nodejsapp
cd nodejsapp/
npm init -y

Après ces commandes votre répertoire d'application nodejs sera créé. Il contiendra un fichier package.json avec les données ci-dessous.

{
  "name": "nodejsapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Installez le module express avec npm en exécutant la commande ci-dessous

npm install express --save

Créez ensuite un fichier index.js avec les instructions suivantes:

const express = require('express');
const app= express()

app.get('/',(req,res)=>{
 res.send('Bonjour Cotonou');
});

app.listen(3000,()=>{
 console.log('Nodejs web app with express');
 });

Executez votre programme avec la commande suivante :

node index.js 

Vous verez afficher dans la console :

Nodejs web app with express

Naviguez vers http://localhost:3000 et vous verez la page: