Intermédiaire30 min20 XP
Objectifs de cette leçon
- Comprendre ce qu'est Node.js
- Créer un serveur HTTP
- Comprendre l'Event Loop
Introduction à Node.js ⚡
Qu'est-ce que Node.js ?
Node.js est un runtime JavaScript qui permet d'exécuter du JavaScript côté serveur, directement dans le terminal, sans navigateur.
| Composant | Rôle |
|---|---|
| V8 Engine | Le moteur JavaScript de Google Chrome |
| libuv | Gestion des Entrées/Sorties asynchrones |
| npm | Le gestionnaire de paquets le plus grand au monde |
Pourquoi Node.js ?
| Avantage | Explication |
|---|---|
| Un seul langage | JavaScript côté client ET serveur |
| Asynchrone | Gère des milliers de connexions sans bloquer |
| npm | +2 millions de paquets disponibles |
| Performant | V8 compile le JS en code machine natif |
Installation
# Vérifier l'installation node --version # v20.x.x npm --version # 10.x.x # Installer Node.js depuis https://nodejs.org # Ou avec nvm (Node Version Manager) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash nvm install 20 nvm use 20
💡 nvm permet d'installer plusieurs versions de Node.js et de basculer entre elles.
Premier script JavaScript
// hello.js console.log("Bonjour depuis Node.js !"); console.log("Version de Node :", process.version); console.log("Plateforme :", process.platform);
Exécution dans le terminal :
node hello.js # Bonjour depuis Node.js ! # Version de Node : v20.10.0 # Plateforme : linux
Premier serveur HTTP
// server.js const http = require('node:http'); const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain; charset=utf-8'); res.end('Bonjour, monde !'); }); server.listen(3000, () => { console.log('Serveur en écoute sur http://localhost:3000'); });
node server.js # Serveur en écoute sur http://localhost:3000
💡 Ouvre
http://localhost:3000dans ton navigateur pour voir le résultat.
Le REPL interactif
node > 2 + 2 4 > "hello".toUpperCase() 'HELLO' > process.version 'v20.10.0' > .exit
REPL = Read-Eval-Print-Loop. C'est une console JavaScript interactive pour tester rapidement du code.
Les modules : CommonJS
Node.js utilise des modules pour organiser le code. Le système original est CommonJS :
// math.js function addition(a, b) { return a + b; } function multiplication(a, b) { return a * b; } module.exports = { addition, multiplication };
// app.js const math = require('./math.js'); console.log(math.addition(3, 4)); // 7 console.log(math.multiplication(3, 4)); // 12
Résumé
| Concept | Description |
|---|---|
node fichier.js | Exécute un script JavaScript |
require() | Importe un module |
module.exports | Exporte du code |
http.createServer() | Crée un serveur web |
console.log() | Affiche dans le terminal |
Exercices 🎯
- Crée
bonjour.jsqui affiche ton nom et ton âge - Crée
calcul.jsqui exporte des fonctions (addition, soustraction, division) et importe-les dansapp.js - Modifie
server.jspour qu'il affiche "Bonjour<prénom>" en fonction de l'URL (/alice,/bob...)
⚡ Simulateur — Introduction à Node.js
Étape 1/5📝 Pseudo-code
1const http = require("http");
2const server = http.createServer((req, res) => {
3 res.end("Hello World!");
4});
5server.listen(3000);
⚙️ Exécution
📦 Mémoire
Aucune variable
🔀 Flux d'exécution
require("http")
3
Import du module http
require("http") importe le module natif http de Node.js. Ce module permet de créer des serveurs HTTP.