Exercices â N04 HTTP Natif
10 exercices pour maĂźtriser le module http de Node.js. Ăcrivez du code Node.js, validez, puis comparez avec la solution.
createServer basique
CrĂ©ez un serveur HTTP qui rĂ©pond "Hello Node.js !" sur toutes les requĂȘtes et Ă©coute sur le port 3000.
Votre code doit utiliser http.createServer() et .listen().
Réponse JSON
Créez un serveur qui répond avec un objet JSON { success: true, data: "Hello" }.
Le header Content-Type doit ĂȘtre application/json.
Utilisez JSON.stringify().
Routing GET par URL
Créez un serveur avec 2 routes GET : / qui répond "Accueil" et /ping qui répond "pong".
Utilisez req.url et res.writeHead(). Retournez 404 pour les autres routes.
Lire le body POST en chunks
Créez une route POST /echo qui lit le body en chunks (req.on('data', ...)),
puis sur l'événement 'end', parse le JSON reçu et le renvoie dans la réponse.
Headers CORS manuels
Ajoutez les headers CORS manuellement à toutes les réponses :
Access-Control-Allow-Origin: *,
Access-Control-Allow-Methods: GET, POST, OPTIONS.
GĂ©rez aussi les requĂȘtes OPTIONS (preflight) en rĂ©pondant 204.
Servir un fichier HTML
Sur GET /, lisez un fichier index.html avec fs.readFile()
et renvoyez son contenu avec le Content-Type: text/html.
Gérez l'erreur si le fichier n'existe pas (404).
Status codes 200 / 404 / 500
CrĂ©ez un serveur avec : GET /ok â 200, GET /introuvable â 404,
GET /erreur â 500. Chaque rĂ©ponse est en JSON avec le champ status.
Utilisez res.writeHead().
Query string parsing
Créez une route GET /search qui lit les paramÚtres de query string
?q=...&limit=... avec URLSearchParams (ou url.searchParams)
et renvoie les valeurs dans la réponse JSON.
Router â mini classe
Implémentez une classe (ou fonction) Router qui stocke les routes dans un tableau
(routes) et expose les méthodes get(), post() et
dispatch(). Enregistrez au moins une route.
Serveur multi-routes complet
Créez un serveur complet avec au moins : une route GET, une route POST,
une gestion du 404 et des headers Content-Type: application/json.
Le serveur doit avoir plus de 200 caractĂšres de code.