0 XP
?
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.

ComposantRôle
V8 EngineLe moteur JavaScript de Google Chrome
libuvGestion des Entrées/Sorties asynchrones
npmLe gestionnaire de paquets le plus grand au monde

Pourquoi Node.js ?

AvantageExplication
Un seul langageJavaScript côté client ET serveur
AsynchroneGère des milliers de connexions sans bloquer
npm+2 millions de paquets disponibles
PerformantV8 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:3000 dans 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é

ConceptDescription
node fichier.jsExécute un script JavaScript
require()Importe un module
module.exportsExporte du code
http.createServer()Crée un serveur web
console.log()Affiche dans le terminal

Exercices 🎯

  1. Crée bonjour.js qui affiche ton nom et ton âge
  2. Crée calcul.js qui exporte des fonctions (addition, soustraction, division) et importe-les dans app.js
  3. Modifie server.js pour 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.