Node.js fondamentaux : le JavaScript côté serveur

Node.js fondamentaux est un cours de niveau intermédiaire de 5 leçons (environ 3 h 01), avec 15 exercices et 15 questions de quiz. Prérequis : JavaScript asynchrone (promesses, fetch, API). Les exercices s'exécutent dans le navigateur, sans installation.

  • JavaScript côté serveur
  • Intermédiaire
  • 5 leçons
  • 3 h 01
  • 15 exercices
  • Exercices exécutés dans le navigateur

Le cours en bref

Ce cours vous fait passer du JavaScript du navigateur au JavaScript côté serveur. Vous découvrirez le fonctionnement de Node.js, la configuration par l'environnement, les modules CommonJS et ES, npm et le versionnage sémantique, la programmation asynchrone et la boucle d'événements, la manipulation de fichiers, les événements, les streams et enfin un serveur HTTP natif, base de tout framework web.

Ce que tu sauras faire

  • Expliquer le modèle d'exécution de Node.js et éviter de bloquer la boucle d'événements
  • Écrire des outils en ligne de commande configurés par arguments et variables d'environnement
  • Organiser un projet en modules ES ou CommonJS et gérer ses dépendances avec npm
  • Écrire du code asynchrone correct avec promesses, async/await, Promise.all et délais maximaux
  • Lire et écrire des fichiers de façon sûre avec node:fs et node:path
  • Utiliser EventEmitter, les streams et le module http pour construire un premier serveur

Programme des 5 leçons

    • Expliquer ce qu'est Node.js et en quoi il diffère du JavaScript du navigateur
    • Exécuter un script et lire ses arguments et variables d'environnement
    • Construire une configuration validée à partir de process.env

    Runtime Node.jsObjet processConfiguration par l'environnement

  1. 02

    Modules CommonJS, ES modules et npm

    18 min
    • Organiser son code en modules avec CommonJS et ES modules
    • Configurer package.json (type, scripts, dépendances)
    • Comprendre le versionnage sémantique et le fichier de verrouillage

    ModulesES modulesnpm et package.jsonVersionnage sémantique

  2. 03

    Asynchrone : callbacks, promesses et boucle d'événements

    20 min
    • Passer des callbacks aux promesses et à async/await
    • Exécuter des opérations en parallèle ou en série et gérer les erreurs
    • Prédire l'ordre d'exécution grâce à la boucle d'événements

    Programmation asynchronePromessesBoucle d'événements

  3. 04

    Fichiers et chemins : node:fs et node:path

    18 min
    • Lire et écrire des fichiers texte et JSON avec node:fs/promises
    • Construire des chemins portables et sûrs avec node:path
    • Gérer les erreurs de fichiers (ENOENT, EACCES) et éviter le path traversal

    Système de fichiersCheminsErreurs système

  4. 05

    Événements, streams et serveur HTTP natif

    20 min
    • Émettre et écouter des événements avec EventEmitter
    • Traiter des données en flux avec les streams et pipeline
    • Comprendre un serveur HTTP natif avant de passer à Express

    EventEmitterStreamsModule http

Projet final

Un outil CLI et un mini-serveur de suivi de dépenses

Construisez en Node.js pur (modules natifs uniquement) un outil de suivi de dépenses : une commande `depenses ajouter --montant 12.5 --categorie courses` qui enregistre dans un fichier JSON, une commande `depenses rapport --mois 2026-11` qui agrège les montants, l'import en flux d'un gros fichier CSV bancaire, et un petit serveur HTTP natif exposant `GET /rapport?mois=` en JSON.

Livrables

  • Le code source organisé en ES modules, avec package.json et scripts npm
  • La CLI basée sur util.parseArgs, avec messages d'aide et codes de sortie corrects
  • L'import CSV en streams, testé sur un fichier de plus de 100 000 lignes
  • Le serveur HTTP natif et des tests node:test de son gestionnaire de requêtes

Critères d'évaluation

  • Aucune opération synchrone bloquante dans le serveur
  • Les erreurs de fichiers et d'arguments sont gérées avec des messages clairs
  • La configuration (port, chemin des données) est lue dans l'environnement
  • L'import en flux garde une mémoire stable quel que soit le volume
  • Le code est découpé en modules cohérents et testés

Questions fréquentes

Faut-il bien connaître JavaScript avant d'apprendre Node.js ?

Oui, il faut être à l'aise avec les fonctions, les objets, les tableaux et les bases de l'asynchrone côté navigateur (cours FE6). Node.js utilise le même langage, avec des API différentes.

Quelle version de Node.js utiliser ?

Utilisez la version LTS actuelle, Node 26. Le cours s'appuie sur des fonctionnalités modernes intégrées : util.parseArgs, import.meta.dirname, fetch natif, le mode --watch et l'option --env-file.

Node.js est-il adapté aux calculs lourds ?

Node.js excelle pour les applications qui font beaucoup d'entrées-sorties, comme les API et le temps réel. Pour un calcul lourd, il faut le déporter dans des worker threads ou un autre service, afin de ne pas bloquer la boucle d'événements.

Ce cours aborde-t-il Express ?

Il pose les bases nécessaires et se termine par un serveur HTTP natif. Express est traité en détail dans le cours suivant du parcours, « API avec Express ».

Ce cours, raconté pour ton métier

Dis ce que tu veux savoir faire : « Node.js fondamentaux » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.

L'aperçu est gratuit, et les cours se suivent un par un sans payer. Le parcours ne contient que des leçons du catalogue.