Node.js : exécuter du JavaScript en dehors du navigateur

Node.js est l'environnement qui exécute du JavaScript sur une machine, sans navigateur. Il apporte l'accès aux fichiers, au réseau, et fait tourner tous les outils.
3 min de lecture
Believemy logo

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.

JAVASCRIPT
// 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.0

Le 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 NodeAbsent de Node
node:fs, la lecture et l'écriture de fichiersdocument et tout le DOM
node:http, pour répondre à des requêteswindow et ses raccourcis
process, les arguments et les variables d'environnementlocalStorage 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.

Bon à savoir

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

Question

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.


Question

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


Question

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.

Termes connexes

Découvrez notre glossaire JavaScript

Tous les mots de JavaScript expliqués simplement : mots-clés, objets natifs, méthodes, erreurs et concepts. Définitions claires et exemples qui tournent, pour apprendre et pour se dépanner.

Partager cet article

Tu veux nous aider ? Fais un lien vers cet article sur tes réseaux ou encore mieux : sur ton site, dans un article ou dans ta newsletter.