Framework Nodejs
Sommaire
1. Introduction générale au Framework Nodejs
2. Initialisez votre projet
3. Démarrez un serveur basique
4. Installez nodemon
5. Installation du Serveur Express
6. Exécutez l'application Express sur le serveur Node
7. Ajoutez des middlewares
8. Améliorez [Link]
9. Quiz
Qu'est-ce que [Link] ?
C'est un outil pour développer des applications web backend en utilisant le
language Javascript.
NodeJS permet en effet, d’exécuter du code Javascript en dehors d’un
navigateur.
[Link] est un environnement serveur, open source, gratuit, et qui utilise le
language Javascript pour créer des applications Web côté serveur. (backend)
[Link] fonctionne sur différentes plateformes (Windows, Linux, Unix, Mac OS X,
etc.) Avec [Link], nous pouvons créer une application Web rapide et hautement
évolutive.
L'utilisation de [Link] signifie également que nous pouvons utiliser Javascript
sur l'ensemble du stack c’est à dire le même language pour le frontend et le
backend. Donc un développement plus rapide et efficace.
[Link] a une énorme bibliothèque de packages prêts à l'emploi et qui vous
feront gagner beaucoup de temps. Ces bibliothèques sont gérées par NPM
(Node Package Manager)
Une particularité de [Link] est qu'il utilise la programmation asynchrone
(exécution de plusieurs tâches en même temps) vs la programmation synchrone
(exécution d'une tâche à la fois) que l'on trouve sur de nombreux langages de
programmation côté serveur comme PHP et Ruby.
Initialisez votre projet
Avant de commencer, vous pouvez initialiser un dépôt Git en exécutant git
init depuis votre dossier backend . N'oubliez pas de créer un fichier
.gitignore contenant la ligne node_modules afin de ne pas envoyer ce
dossier (qui deviendra volumineux) vers votre dépôt distant.
À partir de votre dossier backend , exécutez la commande de terminal npm
init pour initialiser votre projet. Vous pouvez utiliser les options par défaut, ou
les modifier si vous le souhaitez. Cependant, votre point d'entrée doit être
[Link] . Vous le créerez bientôt.
Ce processus génère un fichier [Link] vierge, dans lequel seront
enregistrés les détails de tous les packages npm que nous utiliserons pour ce
projet.
Créez un fichier [Link] à l'intérieur de votre dossier backend . Il contiendra
votre premier serveur Node.
Démarrez un serveur basique
Pour créer un serveur Node dans votre fichier [Link] , il vous faudra le
code suivant :
const http = require('http');
const server = [Link]((req, res) => {
[Link]('Voilà la réponse du serveur !');
});
[Link]([Link] || 3000);
Ici, vous importez le package HTTP natif de Node et l'utilisez pour créer un
serveur, en passant une fonction qui sera exécutée à chaque appel effectué vers
ce serveur. Cette fonction reçoit les objets request et response en tant
qu'arguments. Dans cet exemple, vous utilisez la méthode end de la réponse
pour renvoyer une réponse de type string à l'appelant.
Dans la dernière ligne, vous configurez le serveur pour qu'il écoute :
● soit la variable d'environnement du port grâce à [Link] : si la plateforme de
déploiement propose un port par défaut, c'est celui-ci qu'on écoutera ;
● soit le port 3000, ce qui nous servira dans le cas de notre plateforme de développement.
Démarrez le serveur en exécutant node server à partir de la ligne de commande. Pour vérifier qu'il
envoie la réponse correcte, utilisez une fenêtre de navigateur pour accéder à [Link] (en
supposant que vous ayez bien suivi les étapes ci-dessus).
Vous pouvez également utiliser un outil de test tel que Postman pour effectuer une requête GET (ou
tout autre type de requête d'ailleurs, car notre serveur ne fait actuellement aucune distinction !) vers
la même URL : [Link] (à nouveau, en supposant que vous ayez bien suivi les étapes
ci-dessus).
Node utilise le système de module CommonJS, donc pour
importer le contenu d'un module JavaScript, on utilise le mot-clé
require plutôt que le mot-clé import . Ce système est
particulièrement utile car il nous permet d'importer les modules
de base de Node très facilement (comme le module http ici)
sans spécifier le chemin exact du fichier. Node sait qu'il doit
importer un module de base quand on ne spécifie pas un
chemin relatif (qui commence par ./ ou / , par exemple).
Vous verrez dans le prochain chapitre que nous utilisons aussi
le mot-clé require pour importer nos propres fichiers en utilisant
leur chemin relatif, comme "./[Link]" ou même "./app" ,
tout simplement – require nous permet d'omettre l'extension
.js
Installez nodemon
Pour simplifier le développement Node, vous souhaiterez peut-être installer nodemon . Pour ce faire,
exécutez la commande suivante :
npm install -g nodemon
Désormais, au lieu d'utiliser node server pour démarrer votre serveur, vous pouvez utiliser
nodemon server . Il surveillera les modifications de vos fichiers et redémarrera le serveur lorsqu'il
aura besoin d'être mis à jour. Cela vous garantit d'avoir toujours la dernière version de votre serveur
dès que vous sauvegardez, sans devoir relancer manuellement le serveur ! Vous n'aurez qu'à
relancer la requête vers votre serveur. Pratique, n'est-ce pas ?
Maintenant que vous savez démarrer un serveur de développement Node, dans le chapitre suivant,
nous ajouterons Express au projet pour simplifier encore plus la création de notre API.
Installation du Serveur Express
Coder des serveurs web en Node pur est possible, mais long et laborieux. En effet, cela exige
d'analyser manuellement chaque demande entrante. L'utilisation du framework Express simplifie ces
tâches, en nous permettant de déployer nos API beaucoup plus rapidement. Installons-le maintenant
Pour ajouter Express à votre projet, exécutez la commande suivante à partir de
votre dossier backend :
npm install express
Créez un fichier [Link] , où vous placerez votre application Express :
const express = require('express');
const app = express();
[Link] = app;
Exécutez l'application Express sur le serveur Node
Revenez à votre fichier [Link] et modifiez-le comme suit :
const http = require('http');
const app = require('./app');
[Link]('port', [Link] || 3000);
const server = [Link](app);
[Link]([Link] || 3000);
Effectuer une demande vers ce serveur générera une erreur 404, car notre application n'a encore aucun moyen de
répondre. Configurons une réponse simple pour nous assurer que tout fonctionne correctement, en effectuant un ajout à
notre fichier [Link] :
const express = require('express');
const app = express();
[Link]((req, res) => {
[Link]({ message: 'Votre requête a bien été reçue !' });
});
[Link] = app;
Si vous essayez d'effectuer une requête à votre serveur, vous devez récupérer un objet JSON contenant le message que
nous avons spécifié.
Maintenant que notre serveur Node gère correctement notre application Express, voyons comment nous pouvons ajouter
des fonctionnalités à l'application.
Ajoutez des middlewares
Une application Express est fondamentalement une série de fonctions appelées middleware.
Chaque élément de middleware reçoit les objets request et response , peut les lire, les analyser et
les manipuler, le cas échéant. Le middleware Express reçoit également la méthode next , qui permet
à chaque middleware de passer l'exécution au middleware suivant. Voyons comment tout cela
fonctionne.
const express = require('express');
const app = express();
[Link]((req, res, next) => {
[Link]('Requête reçue !');
next();
});
Ajoutez des middlewares
[Link]((req, res, next) => {
[Link](201);
next();
});
[Link]((req, res, next) => {
[Link]({ message: 'Votre requête a bien été reçue !' });
next();
});
[Link]((req, res, next) => {
[Link]('Réponse envoyée avec succès !');
});
[Link] = app;
Cette application Express contient quatre éléments de middleware :
● le premier enregistre « Requête reçue ! » dans la console et passe l'exécution ;
● le deuxième ajoute un code d'état 201 à la réponse et passe l'exécution ;
● le troisième envoie la réponse JSON et passe l'exécution ;
● le dernier élément de middleware enregistre « Réponse envoyée avec succès ! » dans la
console.
Il s'agit d'un serveur très simple et qui ne fait pas grand-chose pour l'instant, mais il illustre comment
le middleware fonctionne dans une application Express.
Améliorez [Link]
const http = require('http');
const app = require('./app');
const normalizePort = val => {
const port = parseInt(val, 10);
if (isNaN(port)) {
return val;
if (port >= 0) {
return port;
return false;
};
const port = normalizePort([Link] || '3000');
[Link]('port', port);
Améliorez
[Link]
const errorHandler = error => {
if ([Link] !== 'listen') {
throw error;
const address =
[Link]();
const bind = typeof address
=== 'string' ? 'pipe ' + address :
'port: ' + port;
switch ([Link]) {
case 'EACCES':
[Link](bind + '
requires elevated privileges.');
[Link](1);
break;
Améliorez [Link]
case 'EADDRINUSE':
[Link](bind + ' is already in use.');
[Link](1);
break;
default:
throw error;
};
const server = [Link](app);
[Link]('error', errorHandler);
[Link]('listening', () => {
const address = [Link]();
const bind = typeof address === 'string' ? 'pipe ' + address : 'port ' + port;
[Link]('Listening on ' + bind);
});
[Link](port);
Aperçu rapide de ce qui se passe ici :
● la fonction normalizePort renvoie un port valide, qu'il soit fourni sous la forme d'un numéro
ou d'une chaîne ;
● la fonction errorHandler recherche les différentes erreurs et les gère de manière
appropriée. Elle est ensuite enregistrée dans le serveur ;
● un écouteur d'évènements est également enregistré, consignant le port ou le canal nommé sur
lequel le serveur s'exécute dans la console.
Notre serveur de développement Node est à présent opérationnel. Vous pouvez ainsi ajouter les
fonctionnalités appropriées à l'application Express.