Pendant des années, JavaScript ne savait vivre que dans un onglet. Un même développeur écrivait donc son interface dans un langage et son serveur dans un autre.
Node a changé cela en sortant le moteur du navigateur pour l'installer sur une machine ordinaire. Un serveur, un script de sauvegarde, un outil en ligne de commande : tout devient écrivable dans le même langage.
Définition
Node.js est un environnement d'exécution qui fait tourner du JavaScript hors du navigateur. Il reprend le moteur qui équipe Chrome, y ajoute l'accès au système de fichiers et au réseau, et livre npm dans le même paquet.
// info.js
import { readFile } from 'node:fs/promises';
const texte = await readFile('./package.json', 'utf8');
const projet = JSON.parse(texte);
console.log(projet.name + " en version " + projet.version);
// boutique en version 1.4.0Le fichier se lance par node info.js. Le préfixe node: désigne un module fourni par l'environnement lui-même, qui n'a donc rien à installer.
Ce que Node ajoute, et ce qu'il retire
| Disponible dans Node | Absent de Node |
|---|---|
node:fs, la lecture et l'écriture de fichiers | document et tout le DOM |
node:http, pour répondre à des requêtes | window et ses raccourcis |
process, les arguments et les variables d'environnement | localStorage et les cookies |
Le langage, lui, ne change pas d'un pouce : mêmes tableaux, mêmes promesses, même Event loop (boucle d'événements). Ce qui diffère est la bibliothèque de fonctions mise à disposition autour.
Node sert aussi à faire tourner les outils du développement web, même quand le résultat final est une page statique. Vite, ESLint ou un compilateur TypeScript sont des programmes Node, ce qui explique qu'il soit installé sur toutes les machines de front-end.
Modules ES ou CommonJS
Node comprend les deux systèmes. Un fichier .js est lu en CommonJS par défaut, et en Module ES dès que le package.json déclare "type": "module". Les extensions .cjs et .mjs tranchent au cas par cas.
Un module ES perd au passage __dirname et __filename, remplacés par import.meta.url. C'est la différence qui surprend le plus souvent lors d'une conversion.
Questions fréquentes
Quelle version de Node installer ?
Une version au numéro pair, qui bénéficie du support long. Sur une machine partagée entre plusieurs projets, un gestionnaire de versions comme nvm évite les conflits, puisque chaque projet peut réclamer la sienne dans le champ engines.
Node est-il adapté à un travail de calcul lourd ?
Moins que d'autres environnements, car votre code s'exécute sur un seul fil : un calcul long bloque toutes les requêtes en attente. Node excelle sur les tâches qui passent leur temps à attendre le réseau ou le disque, et un travail vraiment intensif se déporte dans un Web Worker ou dans un processus séparé.
Comment relancer un script à chaque modification ?
L'option node --watch info.js suffit désormais, sans rien installer. Node embarque également un exécuteur de tests et un lecteur de fichiers d'environnement, autant d'outils qui exigeaient hier une dépendance de plus. Notre formation Node.js part de ces bases pour construire une véritable API.