Menu

Node.js, c'est quoi ? Le runtime JavaScript expliqué

Node.js est un runtime qui exécute du JavaScript en dehors du navigateur, sur des serveurs et dans le terminal. Ce n'est ni un langage ni un framework : c'est V8, plus un event loop, plus des API pour les fichiers, le réseau et les processus.

Cette page contient des éditeurs exécutables. Modifiez, exécutez et voyez la sortie instantanément.

Node.js est un runtime qui exécute du JavaScript en dehors du navigateur : sur un serveur, dans un terminal ou comme outil en ligne de commande. Ce n'est pas un langage de programmation (le langage, c'est JavaScript) ni un framework (Express est un framework qui tourne sur Node.js). Il associe le moteur V8 de Google, qui exécute le JavaScript, à un event loop et à des API intégrées pour les fichiers, le réseau et les processus, que les navigateurs n'ont pas.

Le programme a affiché le contenu du fichier, la version majeure (v24) et undefined pour window, car Node.js n'a pas de page web pour vous en fournir un. fs et process n'existent que dans Node.js ; lancez les mêmes lignes dans un onglet de navigateur et la première lève une erreur.

Node.js, un framework ou un langage ?

Ni l'un ni l'autre. Le langage, c'est JavaScript. Node.js est le programme qui l'exécute, comme la JVM exécute Java ou CPython exécute Python. Les frameworks viennent par-dessus : Express, Fastify et NestJS sont des bibliothèques que vous installez dans un projet Node.js. La page Node.js vs JavaScript compare les deux en détail.

Sous le capot, Node.js se compose de quatre parties :

  • V8, le moteur JavaScript de Chrome. Il transforme votre code en code machine et l'exécute.
  • libuv, une bibliothèque C qui fournit l'event loop et fait le travail lent (disque, réseau, timers) en arrière-plan, puis rend le résultat à vos callbacks.
  • Les API propres à Node : fs pour les fichiers, http pour les serveurs, path, process, crypto, events et d'autres, disponibles avec require ou import sans rien installer.
  • npm, le gestionnaire de packages livré avec Node.js, qui donne accès au plus grand registre de packages de tous les langages.

Comment lancer un fichier Node.js

Installez Node.js depuis son site (choisissez la version LTS), puis vérifiez-le dans un terminal et lancez un fichier :

node --version     # prints v24.x.x or similar
node app.js        # runs app.js and exits when it has nothing left to do
node               # with no file: an interactive prompt (the REPL)

Un programme se termine tout seul dès que plus rien n'attend : aucun timer, aucun serveur ouvert, aucune lecture de fichier en cours. C'est pourquoi un script se termine alors qu'un serveur web continue de tourner.

L'I/O non bloquante, l'idée centrale

Node.js n'attend pas le travail lent. Il lance une lecture de fichier ou une requête réseau, continue d'exécuter les lignes suivantes et appelle votre fonction quand le résultat est prêt.

Les deux lignes console.log après readFile se sont exécutées en premier, et le contenu du fichier est arrivé en dernier. C'est ainsi qu'un seul processus Node.js sert des milliers de connexions : pendant qu'une requête attend la base de données, l'event loop fait avancer les autres.

Node.js et le navigateur

NavigateurNode.js
TourneDans une page webDans un terminal ou sur un serveur
Possèdewindow, document, le DOM, localStoragefs, process, http, Buffer, require
Objet globalwindow (et globalThis)global (et globalThis)
Fichiers sur le disqueAucun accèsAccès complet, avec les permissions de votre utilisateur
setTimeout, console, fetch, URLOuiOui

À quoi sert Node.js

  • Serveurs web et API : backends REST et GraphQL, souvent avec Express.
  • Applications temps réel : chat, tableaux de bord en direct et jeux multijoueurs via WebSockets, où beaucoup de connexions restent ouvertes en même temps.
  • Outils en ligne de commande : npm lui-même, Vite, ESLint, Prettier et le compilateur de TypeScript tournent tous sur Node.js.
  • Scripts et automatisation : renommer des fichiers, appeler des API, migrer des données.

L'usage le plus courant est un serveur HTTP, et le module intégré http suffit pour un premier serveur :

Le serveur a répondu à GET /hello avec le chemin reçu. Remplacez le chemin par /anything dans la barre de requête et envoyez : la réponse suit, car ce serveur traite chaque URL avec une seule fonction.

Quand choisir Node.js

Choisissez Node.js quand le travail consiste surtout à attendre des I/O (requêtes, bases de données, fichiers) et que vous voulez un seul langage côté frontend et backend. Il convient moins aux longs calculs gourmands en CPU, comme l'encodage vidéo ou les gros calculs numériques, car un long calcul bloque l'unique thread JavaScript et toutes les autres requêtes l'attendent.

Questions fréquentes

Node.js, c'est du frontend ou du backend ?

Surtout du backend. Node.js tourne sur un serveur ou sur votre propre machine, pas dans le navigateur du visiteur. Les développeurs frontend s'en servent quand même tous les jours, car des outils comme npm, Vite et ESLint sont des programmes Node.js.

Qui a créé Node.js et quand ?

Ryan Dahl a publié Node.js en 2009. Il est aujourd'hui maintenu par l'OpenJS Foundation, avec une nouvelle version majeure tous les six mois, et les versions paires bénéficient d'un support long terme.

Faut-il connaître JavaScript avant Node.js ?

Oui, au moins les bases : variables, fonctions, objets, tableaux, et callbacks ou promesses. Node.js ajoute des API, pas de nouvelle syntaxe, donc tout ce que vous apprenez sur le langage s'applique directement.

Node.js est-il single-thread ?

Votre JavaScript tourne sur un seul thread. En coulisses, Node.js utilise un petit pool de threads pour le système de fichiers, le DNS et une partie de la crypto, donc une I/O lente ne bloque pas votre code pendant l'attente.

Illustration des langages de programmation de Coddy

Apprendre à coder avec Coddy

Commencer