◎ Formation complète Node.js ◎

Ce cours Node.js part des bases de JavaScript (objets, tableaux, fonctions, code asynchrone) pour construire pas à pas un serveur web : module HTTP natif, cycle de vie de Node et boucle d'événements, puis Express.js avec routage, middlewares, pages HTML et moteurs de templates Pug, Handlebars et EJS.

➲ Section 1 :

⁂ NODE.JS - 1.1 Introduction à Node.js : JavaScript côté serveur

➔ Découvrez Node.js, un environnement qui exécute du JavaScript côté serveur, basé sur le moteur V8 et utilisé par de grandes entreprises du web.

⁂ NODE.JS - 1.2 Installer Node.js et lancer un premier script

➔ Installez Node.js, vérifiez la version installée avec une commande du terminal, puis lancez votre premier fichier JavaScript avec la commande node.

➲ Section 2 :

⁂ NODE.JS - 2.1 Les variables et les chaînes en JavaScript

➔ Découvrez comment déclarer une variable en JavaScript et assembler une phrase par concaténation, avec le signe plus, dans une fonction qui reçoit un prénom.

⁂ NODE.JS - 2.2 Les objets en JavaScript

➔ Apprenez à créer un objet JavaScript avec des clés et des valeurs, à y placer une fonction ou une méthode, puis à lire ses valeurs avec console.log.

⁂ NODE.JS - 2.3 Les différentes syntaxes des fonctions en JavaScript

➔ Découvrez les trois façons d'écrire une fonction en JavaScript : la déclaration avec function, la fonction stockée dans une constante et la fonction fléchée.

⁂ NODE.JS - 2.4 Les tableaux en JavaScript : créer, afficher, ajouter

➔ Apprenez à créer un tableau en JavaScript, à afficher ses valeurs avec la méthode map et à ajouter un élément avec push, avec des exemples simples.

⁂ NODE.JS - 2.5 Code synchrone et asynchrone en JavaScript

➔ Comprenez la différence entre code synchrone et code asynchrone en JavaScript, avec setTimeout, pour savoir dans quel ordre le code s'exécute.

⁂ NODE.JS - 2.6 Les modèles littéraux en JavaScript

➔ Découvrez les modèles littéraux en JavaScript : écrivez des chaînes avec des backticks et insérez facilement des variables avec la syntaxe ${}.

➲ Section 3 :

⁂ NODE.JS - 3.1 Introduction au module sur le web et les serveurs

➔ Présentation du module Node.js : comprendre le fonctionnement du web, créer un serveur, traiter les requêtes et envoyer des réponses avec JavaScript.

⁂ NODE.JS - 3.2 Comment fonctionne le web : client, serveur et HTTP

➔ Comprenez le trajet d'une requête web, du navigateur jusqu'au serveur, et le rôle des protocoles HTTP et HTTPS avant de créer un serveur Node.js.

⁂ NODE.JS - 3.3 Créer un serveur web avec Node.js et le module http

➔ Apprenez à créer un serveur web avec le module http de Node.js, à l'écouter sur le port 3000 et à le tester dans votre navigateur en local.

⁂ NODE.JS - 3.4 Le cycle de vie de Node et la boucle d'événements

➔ Comprenez pourquoi un serveur Node.js reste en marche grâce à la boucle d'événements, et comment process.exit() met fin au programme.

⁂ NODE.JS - 3.5 Lire les demandes avec l'objet request

➔ Explorez l'objet request de Node.js pour lire la méthode HTTP, l'URL et les en-têtes envoyés par le navigateur à votre serveur.

⁂ NODE.JS - 3.6 Envoyer une réponse HTML

➔ Apprenez à envoyer une réponse HTML depuis Node.js avec setHeader, write et end, puis à vérifier l'en-tête dans les outils de développement.

⁂ NODE.JS - 3.7 Router les requêtes et afficher un formulaire

➔ Apprenez à lire l'URL d'une requête Node.js, à afficher un formulaire HTML sur la page d'accueil et à envoyer ses données en POST vers /message.

⁂ NODE.JS - 3.8 Rediriger une demande et écrire un fichier

➔ Apprenez à rediriger une demande POST vers la page d'accueil avec le code 302, et à écrire le message reçu dans un fichier avec le module fs de Node.js.

⁂ NODE.JS - 3.9 Lire le corps d'une requête POST avec Node.js

➔ Apprenez à recevoir par morceaux le corps d'une requête POST, à l'assembler avec Buffer puis à extraire la valeur d'un champ de formulaire sur Node.js.

⁂ NODE.JS - 3.10 Exécution de code pilotée par les événements

➔ Comprenez pourquoi le code Node.js ne s'exécute pas toujours dans l'ordre où il est écrit, et comment les fonctions de rappel gèrent les événements.

⁂ NODE.JS - 3.11 Code bloquant et code non bloquant

➔ Comparez les méthodes synchrones et asynchrones de Node.js pour écrire un fichier, et comprenez pourquoi le code bloquant ralentit un serveur.

⁂ NODE.JS - 3.12 La boucle d'événements de Node.js expliquée

➔ Comprenez comment Node.js gère plusieurs requêtes avec un seul thread, grâce à la boucle d'événements, au pool de travail et aux phases d'exécution.

⁂ NODE.JS - 3.13 Découper son code Node.js avec require et exports

➔ Apprenez à séparer le routage dans un fichier route.js, à exporter un gestionnaire avec module.exports et à l'importer avec require dans Node.js.

⁂ NODE.JS - 3.14 Récapitulatif du module Node.js

➔ Récapitulatif du module Node.js : le fonctionnement du web, la boucle d'événements, les requêtes, les réponses et l'export de modules, à retenir.

➲ Section 4 :

⁂ NODE.JS - 4.1 Comprendre les scripts npm

➔ Apprenez à initialiser un projet Node.js avec npm init, à définir des scripts dans package.json et à lancer l'application avec npm start, puis avec npm run.

⁂ NODE.JS - 4.2 Installer des paquets npm

➔ Apprenez à installer un paquet tiers avec npm install, puis à trouver sa documentation sur le site officiel de npm, avec l'exemple de nodemon.

⁂ NODE.JS - 4.3 Utiliser Nodemon pour redémarrer le serveur automatiquement

➔ Installez Nodemon avec npm, lancez votre application Node.js avec lui, et le serveur se relancera tout seul à chaque modification enregistrée du code.

⁂ NODE.JS - 4.4 Les différents types d'erreurs

➔ Distinguez les erreurs de syntaxe, d'exécution et logiques en Node.js, et repérez le type d'erreur d'après le comportement du programme.

⁂ NODE.JS - 4.5 Repérer et corriger une erreur de syntaxe

➔ Apprenez à lire un message d'erreur de syntaxe dans Node.js, à repérer la ligne fautive et à corriger une faute de frappe simple dans votre code.

⁂ NODE.JS - 4.6 Traiter les erreurs d'exécution

➔ Apprenez à lire un message d'erreur Node.js, à repérer l'instruction fautive et à corriger l'erreur d'en-têtes envoyés après la réponse.

⁂ NODE.JS - 4.7 Repérer une erreur logique avec le débogueur

➔ Apprenez à repérer une erreur logique dans un programme Node.js, qui n'affiche aucun message, grâce au débogueur de Visual Studio Code, pas à pas.

⁂ NODE.JS - 4.8 Utiliser le débogueur pas à pas

➔ Apprenez à utiliser le débogueur de Node.js pour suivre votre code ligne par ligne, poser des points d'arrêt et trouver l'origine d'une erreur.

⁂ NODE.JS - 4.9 Redémarrer automatiquement le débogueur avec nodemon

➔ Configurez le débogage de Node.js pour qu'il redémarre seul après chaque modification du code, grâce au paquet nodemon. Une méthode simple à mettre en place.

⁂ NODE.JS - 4.10 Modifier une variable dans la console du débogueur

➔ Dans le débogueur de Node.js, modifiez la valeur d'une variable pendant l'exécution pour tester une situation rapidement, sans changer le fichier source.

➲ Section 5 :

⁂ NODE.JS - 5.1 Introduction à Express.js

➔ Découvrez Express.js, un framework installé comme paquet dans un projet Node.js, qui simplifie les routes, les requêtes, les réponses et les pages HTML.

⁂ NODE.JS - 5.2 Découvrir Express.js, le framework de Node.js

➔ Découvrez ce qu'est Express.js, pourquoi il simplifie la création d'un serveur Node.js et pourquoi il est le framework Node.js le plus utilisé.

⁂ NODE.JS - 5.3 Installer Express.js et créer une première application

➔ Installez Express.js comme dépendance de production, importez-le dans votre projet et créez une application. Une première étape pour démarrer un serveur.

⁂ NODE.JS - 5.4 Ajouter un middleware dans Express

➔ Apprenez ce qu'est un middleware dans Express, comment l'ajouter avec app.use() et pourquoi il faut appeler next() pour passer la requête au suivant.

⁂ NODE.JS - 5.4.2 Comprendre le fonctionnement des middleware

➔ Comprenez comment une requête traverse les middleware de haut en bas, quand appeler next() pour continuer et quand envoyer une réponse avec res.send().

⁂ NODE.JS - 5.5 Explorer le code source d'Express

➔ Explorez le code source d'Express sur GitHub pour comprendre la fonction send, puis simplifiez la création du serveur avec app.listen, sans module http.

⁂ NODE.JS - 5.6 Diriger les requêtes selon leur chemin

➔ Filtrez les middleware avec un chemin dans app.use(), comprenez quelles adresses ils reçoivent et pourquoi leur ordre de déclaration compte beaucoup.

⁂ NODE.JS - 5.7 Lire les données d'un formulaire avec body-parser

➔ Ajoutez body-parser à Express pour lire les données d'un formulaire POST dans req.body, puis redirigez l'utilisateur après l'envoi avec res.redirect().

⁂ NODE.JS - 5.8 Limiter un intergiciel aux requêtes POST

➔ Apprenez à n'exécuter un intergiciel Express que pour les requêtes POST, avec app.post, plutôt que pour toutes les méthodes HTTP avec app.use.

⁂ NODE.JS - 5.9 Organiser les routes avec express.Router

➔ Apprenez à séparer les routes Express dans plusieurs fichiers avec express.Router, pour les parties administration et boutique, puis à les importer.

⁂ NODE.JS - 5.10 Ajouter une page d'erreur 404

➔ Ajoutez une page 404 à une application Express : un middleware placé en bas des routes renvoie un message et le code d'état 404 pour les adresses inconnues.

⁂ NODE.JS - 5.11 Filtrer les routes avec un préfixe commun

➔ Regroupez les routes d'un même fichier sous un chemin commun, comme /admin, en le déclarant une seule fois dans app.js avec Express, sans le répéter.

⁂ NODE.JS - 5.12 Créer les pages HTML du site

➔ Créez les vraies pages HTML de votre site Express, rangées dans un dossier views, pour remplacer le contenu factice servi aux visiteurs jusqu'ici.

⁂ NODE.JS - 5.13 Envoyer des fichiers HTML avec sendFile()

➔ Renvoyez un fichier HTML avec res.sendFile() et construisez son chemin avec path.join() et __dirname, pour que le code fonctionne sous Windows comme sous Linux.

⁂ NODE.JS - 5.14 Renvoyer une page 404 personnalisée

➔ Créez une page d'erreur 404 personnalisée et renvoyez-la avec le bon code d'état lorsqu'un visiteur demande une adresse inexistante, pour un message clair.

⁂ NODE.JS - 5.15 Créer un module utilitaire pour le dossier racine

➔ Créez un petit module utilitaire qui exporte le dossier racine du projet, pour construire des chemins propres depuis n'importe quel fichier de l'application.

⁂ NODE.JS - 5.16 Styliser les pages avec du CSS dans une balise style

➔ Ajoutez du style à vos pages Express avec une balise style, nommez les classes selon la méthode BEM, et préparez le passage à un fichier CSS externe.

➲ Section 6 :

⁂ NODE.JS - 6.1 Données dynamiques et stockage : introduction au module

➔ Découvrez pourquoi une application affiche des données dynamiques stockées sur le serveur, et comment ce module prépare le stockage des produits étape par étape.

⁂ NODE.JS - 6.2 Partager des données entre les requêtes

➔ Stockez des produits dans un tableau JavaScript, exportez-le depuis un module pour le partager entre deux fichiers, et découvrez les limites de cette méthode.

⁂ NODE.JS - 6.3 Présentation des moteurs de modèles

➔ Comprenez le rôle d'un moteur de modèles pour générer des pages HTML dynamiques sur le serveur, et comparez EJS, Pug et Handlebars avant de choisir.

⁂ NODE.JS - 6.4 Installer et utiliser le moteur Pug

➔ Installez EJS, Pug et Handlebars avec npm, activez Pug dans Express et transformez une page HTML en modèle Pug à l'aide de l'indentation, pas à pas.

⁂ NODE.JS - 6.5 Transmettre des données à une vue Pug

➔ Apprenez à transmettre des données depuis une route Express vers une vue Pug, puis à afficher une valeur dynamique dans la page, avec la syntaxe de Pug.

⁂ NODE.JS - 6.6 Convertir les pages HTML en modèles Pug

➔ Convertissez pas à pas vos pages HTML en modèles Pug, affichez une liste de produits avec une boucle each et gérez le cas où il n'y a aucun produit.

⁂ NODE.JS - 6.7 Créer une mise en page commune avec Pug

➔ Créez un layout Pug commun pour éviter de répéter le même squelette HTML, puis remplissez ses blocs styles et content dans chaque page avec extends.

⁂ NODE.JS - 6.8 Finaliser la mise en page Pug et le lien actif

➔ Finalisez la mise en page Pug : un lien de menu actif selon la page affichée, un titre dynamique pour chaque page et une structure commune à toutes.

⁂ NODE.JS - 6.9 Utiliser Handlebars comme moteur de vues

➔ Installez express-handlebars, enregistrez-le comme moteur de vues dans Express, puis affichez une valeur dynamique dans une page avec des doubles accolades.

⁂ NODE.JS - 6.10 Afficher des données avec Handlebars

➔ Apprenez à utiliser Handlebars pour afficher le titre d'une page, une condition if et une boucle each sur une liste de produits, avec la logique dans Express.

⁂ NODE.JS - 6.11 Ajouter une disposition Handlebars

➔ Créez une disposition Handlebars commune à toutes les pages, avec un emplacement pour le contenu, une classe active et une option pour retirer la mise en page.

⁂ NODE.JS - 6.12 Utiliser EJS comme moteur de vues

➔ Utilisez EJS comme moteur de vues dans Express : affichez une valeur, une condition et une boucle dans une page HTML avec une syntaxe proche du HTML.

👍 Bon à savoir

Node.js est l'environnement d'exécution JavaScript le plus utilisé côté serveur. Il sert aussi bien à créer des API REST qu'à outiller le développement front (Angular, React, Ionic reposent sur npm). Les bases vues ici (modules, événements, Express) sont réutilisées dans tous les frameworks Node modernes.

Toutes les leçons du cours Node.js

Questions fréquentes

Faut-il connaître JavaScript avant de commencer ?
Les premières leçons rappellent les bases de JavaScript (objets, tableaux, fonctions, code asynchrone). Une première expérience avec le cours JavaScript du site aide, mais n'est pas obligatoire.

Quelle version de Node.js utiliser ?
Les concepts du cours (module HTTP, Express, templates) sont stables : toute version LTS récente de Node.js convient.

Express.js est-il indispensable ?
Non, le cours commence par le module HTTP natif pour comprendre ce qu'Express automatise ensuite : routage, middlewares, réponses et pages dynamiques.