Node.js - Du Javascript coté serveur

Auteur: Mohamed CHINY Durée necessaire pour le cours de Node.js - Du Javascript coté serveur Niveau recommandé pour le cours de Node.js - Du Javascript coté serveur Supports vidéo disponibles pour ce cours Exercices de renforcement non disponibles pour ce cours Quiz non disponibles pour ce cours

Page 6: Express.js - Installation et mise en route du framework

Toutes les pages

Express.js - Le framework de prédilection de Node.js

Utilité du framework Express.js

En programmation, on appelle framework, un environnement de développement qui offre des fonctionnalités (appelées aussi modules) prêtes à l’emploi.

Toutes les applications que l’on a créées ou que l’on souhaite créer contiennent un nombre important fonctionnalités communes, comme le traitement des formulaires, l’interrogation de la base de données, l’exportation des images etc… Alors, au lieu de recoder à chaque fois ces fonctionnalités-là, il serait plus utile de réutiliser celles que l’on a déjà programmée auparavant pour d’autres applications. On pourrait même réutiliser celles qui ont été codées par d’autres programmeurs et qui ont été jugées comme performantes et optimisées. Mais au lieu de collecter ces morceaux de codes de plusieurs endroits, on va plutôt y accéder d’un seul et unique endroit en utilisant un style de programmation standard et adapté. Cet endroit n’est rien d’autre qu’un framework.

L’un des frameworks les plus utilisés pour l’environnement Node.js s’appelle Express (ou Express.js), et comme nous allons le voir dans la suite de cette série, il facilite considérablement le développement back-end ou le montage des API qui implémentent le CRUD de manière renforcée.

Particularité du framework Espress.js

Le framework Express, selon son site officiel https://expressjs.com est axé sur les routes et les middlewares. Donc, toutes les fonctions que l'on utilisera dans le code sont des middlewares (on aura l'occasion de parler de routes et de middleware plus en détail dans la prochaine leçon). Donc, l'utilisation d'Express s'avère très facile et le code résultant est beaucoup plus clair que le code qui utilise les modules natifs de Node.js, ce qui garantit une rapidité de développement accompagnée d'une grande performance des fonctionnalités créées.

Installer et mettre en œuvre le framework Express.js

Initialiser le projet: fichier package.json

Afin d'utiliser Express, il faut d'abord l'installer en tant que module (On aura aussi besoin d'installer d'autres modules en cas de besoin). La première opération consiste à initialiser le projet. Cela consiste à créer un répertoire qui renfermera notre projet puis exécuter (sur la ligne de commande) la commande suivante:
npm init -y
L'option -y permet de sauter toutes les question que NPM (Node Package Manager) pourrait nous poser pour initialiser le projet, comme le nom de celui-ci, sa description, sa version etc... ainsi, des valeurs par défaut seront appliquées.

L'initialisation du projet consiste à créer un fichier nommé package.json (situé à la racine du répertoire créé). Ce fichier contient toutes les informations du projet initialisé, ainsi que les dépendances qui y seront utilisées (les dépendances sont des modules dont le projet aura besoin pour fonctionner, comme Express, Nodemon...).

Voilà à quoi peut ressembler le fichier package.json:
{
   "name": "expressx",
   "version": "1.0.0",
   "description": "",
   "main": "index.js",
   "scripts": {
      "test": "echo "Error: no test specified" && exit 1",
      "start":"nodemon app.js"
   },
   "keywords": [],
   "author": "",
   "license": "ISC",
   "dependencies": {
      "express": "^4.18.2",
      "nodemon": "^3.0.3"
   }
}

Installer le framework Express.js (module express)

Pour installer le module Express, on tape la commande suivante:
npm i express
La lettre i et l’abréviation de install.

On constate que le fichier package.json a été mis à jour, et le module express fait désormais partie des dépendances installées.

On constate aussi qu’un dossier nommé « node_modules » a aussi été créé. Celui-ci contient les sources des dépendances installées. Un autre fichier json nommé « package-lock.json » a aussi été généré. Il a pour rôle de maintenir les noms et versions des différentes dépendances utilisées dans le projet courant. Ainsi, si un jour on décide de réinstaller les mêmes modules (comme au moment du déploiement de l’application en mode production) on est sûr que ce sont les mêmes versions que celles utilisées qui seront téléchargée et installées.

Installer l'utilitaire Nodemon

Vous vous souvenez qu’après toute modification du code, nous arrêtions et redémarrions manuellement notre serveur, ce qui semble être très frustrant comme opération, surtout qu’on a va constamment modifier notre code.

Afin d’éviter ce problème, nous allons installer une nouvelle dépendance appelée nodemon. Nodemon est un utilitaire qui traque la moindre modification dans le code du fichier principal (ou les fichiers qui y seront importés par la suite) et se charge de redémarrer automatiquement le serveur à notre place, ce qui constitue un gain de temps important.

Pour installer nodemon il y a plusieurs façons, mais nous allons adopter la plus simple en tapant la commande:
npm i nodemon
Après installation, le fichier package.json est de nouveau mis à jour et nodemon apparait désormais dans la liste des dépendances.

Afin de dire à « nodemon » de surveiller les modifications du fichier principal, nous allons procéder ainsi.

Premièrement, nous allons nous rendre dans la clé « scripts » du fichier « package.json » et nous allons ajouter une nouvelle clé que nous appellerons par exemple « start » et comme valeur on mettra la commande « nodemon app.js »:
"scripts": {
   "test": "echo "Error: no test specified" && exit 1",
   "start":"nodemon app.js"
},
Ensuite nous allons nous rendre dans le terminal et taper la commande suivante:
npm run start
Désormais, nodemon traque et notifie la moindre modification du fichier « app.js » .
On suppose que app.js est le nom du fichier principal de notre application. On pourrait tout de même nommer notre fichier comme on souhaite (server.js, index.js...)
Si on tente de modifier et enregistrer le fichier app.js. On constate que « nodemon » réagit aussitôt et reexécute le fichier principal automatiquement.

Notre environnement de développement est prêt. On peut donc commencer à créer notre application à l'aide d'Express.

Installer et mettre en route Express.js en vidéo