Node.js - 3.3 Créer un serveur web avec Node.js et le module http
Cette leçon montre comment créer votre premier serveur web avec Node.js. Vous importerez le module http, définirez une fonction exécutée pour chaque requête, puis lancerez le serveur sur un port local. Vous verrez aussi comment le tester dans un navigateur.
Préparer le fichier et importer le module http
Dans Visual Studio Code, on crée un fichier JavaScript dans un dossier de projet. Le nom app.js est courant, car ce fichier sert de point d'entrée à l'application Node.js.
Node.js fournit des modules de base, comme fs pour les fichiers, path pour les chemins, os pour le système et http pour les requêtes web. Pour utiliser un module, on l'importe avec require.
const http = require('http');
Créer le serveur et écouter les requêtes
La méthode createServer du module http crée un serveur. Elle reçoit une fonction de rappel, exécutée pour chaque requête. Cette fonction reçoit deux arguments : la requête, qui contient les informations entrantes, et la réponse, qui sert à répondre.
La méthode listen lance le serveur sur un port. La vidéo utilise le port 3000, souvent employé en développement. En production, le port par défaut est le 80.
const server = http.createServer((request, response) => {
console.log(request);
});
server.listen(3000);
Lancer et tester le serveur
Lancez le fichier avec la commande node suivie du nom du fichier. Le terminal ne revient pas à la ligne, car le serveur reste en écoute. Ouvrez ensuite un navigateur et saisissez localhost:3000.
La page reste vide, car aucune réponse n'est encore envoyée. En revanche, le terminal affiche les informations de chaque requête reçue. Pour arrêter le serveur, on utilise Ctrl+C.
node app.js
En résumé
Le module http de Node.js permet de créer un serveur web. La méthode createServer reçoit une fonction exécutée pour chaque requête. La méthode listen lance le serveur sur un port, ici 3000. Le serveur reste actif et affiche les requêtes reçues. La leçon suivante montre comment envoyer une réponse utile.
Points clés
- Le module http est fourni avec Node.js et s'importe avec require.
- createServer crée un serveur qui exécute une fonction pour chaque requête.
- La requête et la réponse sont passées à la fonction de rappel.
- listen lance le serveur sur un port, par exemple 3000.
- Le serveur reste actif tant qu'on ne l'arrête pas.
Questions fréquentes
Pourquoi le terminal ne revient-il pas à la ligne ?
Le serveur est en écoute. Node.js continue donc de tourner pour traiter les requêtes.
Pourquoi utiliser le port 3000 ?
C'est un port souvent utilisé en développement local. Vous pouvez choisir un autre port, mais la vidéo conseille un port de la plage des milliers, comme 3000.
Que faire si la page reste vide ?
C'est normal à ce stade, car aucune réponse n'est envoyée. La leçon suivante montre comment répondre à la requête.