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

Node.js exécute du JavaScript hors du navigateur, avec un accès aux fichiers, au réseau et au processus : ce qui change et ce qui reste identique.
3 min de lecture
Believemy logo

Pendant dix ans, JavaScript n'a su vivre que dans un onglet. Écrire un serveur, un script de sauvegarde ou un outil en ligne de commande demandait un autre langage.

Node.js a supprimé cette frontière en emportant le moteur du navigateur ailleurs.


Définition

Node.js est un environnement d'exécution qui fait tourner du JavaScript en dehors du navigateur. Il embarque le moteur V8 de Chrome et lui ajoute ce qu'un onglet n'a pas le droit de faire : lire des fichiers, ouvrir un port, lancer d'autres programmes, lire des variables d'environnement.

JAVASCRIPT
import { readFile } from "node:fs/promises";

const contenu = await readFile("factures.json", "utf8");
const factures = JSON.parse(contenu);
const total = factures.reduce((somme, f) => somme + f.montant, 0);

console.log(`${factures.length} factures, ${total} euros`);

Le préfixe node: désigne un module fourni par l'environnement lui-même, sans installation. La syntaxe, elle, est celle de tous les jours : Array.reduce(), JSON et await se comportent exactement comme dans un navigateur. C'est ce qui rend l'environnement rapide à apprendre, puisque tout le langage se transporte et qu'il ne reste que la bibliothèque autour à découvrir.


Ce qui change, ce qui reste

Disponible dans Node.jsDisponible dans le navigateur
process, pour les arguments et l'environnementwindow, l'objet global de la page
node:fs, pour lire et écrire des fichierslocalStorage, pour un stockage limité
node:http, pour écouter sur un portdocument et l'arbre de la page

Le langage est le même des deux côtés : Array (tableau), Promise, class ou Map ne changent pas d'un environnement à l'autre. Ce qui diffère, ce sont les objets que l'environnement met à disposition autour.


Un seul fil, jamais bloqué

Node exécute le code applicatif sur un unique fil d'exécution. Il tient la charge parce que les opérations lentes, disque et réseau, sont déléguées au système et rendues plus tard par la Event loop (boucle d'événements), plutôt qu'attendues sur place. Ce même modèle explique pourquoi de très nombreuses connexions simultanées coûtent si peu ici, là où un fil du système d'exploitation par connexion aurait coûté bien davantage.

Bon à savoir

Ce modèle a un revers : un calcul long bloque tout le serveur, puisque personne d'autre ne tient le fil. Les traitements coûteux se confient à un fil de travail dédié, ou à un autre processus.


Questions fréquentes

Question

Node.js est-il un langage ?

Non, le langage reste JavaScript. Node.js est l'environnement qui l'exécute, au même titre que le navigateur, avec sa propre bibliothèque de modules. Confondre les deux amène à chercher du côté du langage des fonctions qui appartiennent en réalité à l'environnement.


Question

Quelle version installer ?

Toujours une version portant un numéro majeur pair, dite à support long terme : elle reçoit les correctifs de sécurité pendant environ trois ans. Les versions impaires servent aux essais et cessent d'être suivies rapidement. Un gestionnaire de versions permet d'en garder plusieurs et de basculer par projet.


Question

Node convient-il à tout ?

Il excelle sur ce qui attend beaucoup et calcule peu : API, serveurs de fichiers, outils en ligne de commande, traitements pilotés par le réseau. Pour du calcul intensif et continu, d'autres environnements gardent l'avantage. La formation Node.js part de ce partage pour construire une API complète.

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.