◎ 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.