Node.js est un environnement d’exécution open source, multiplateforme, basé sur le moteur V8 de Google Chrome, qui permet d’exécuter du code JavaScript côté serveur en dehors du navigateur.
Traditionnellement, JavaScript ne fonctionnait que dans les navigateurs web (pour animer des pages).
Node.js a libéré JavaScript du navigateur, en lui donnant accès au système de fichiers, au réseau, aux bases de données, etc.
Résultat : on peut désormais écrire toute une application en un seul langage : JavaScript.
Fonctionnement clé : asynchrone et événementiel
Node.js repose sur un modèle non bloquant et orienté événements :
- Pas de « attente » pendant une opération (ex. : lecture de fichier, requête BDD),
- Utilisation de callbacks, promesses ou async/await pour gérer les réponses,
- Très efficace pour les applications I/O intensives (API, temps réel, streaming).
→ C’est ce qui lui permet de gérer des milliers de connexions simultanées avec peu de ressources.
Cas d’usage concrets
| Domaine | Exemples |
|---|---|
| API REST / GraphQL | Backend pour applications mobiles ou SPAs (React, Vue) |
| Automatisation | Scripts de traitement de données, conversion de fichiers, ETL (vous l’utilisez probablement via Python ou Bash, mais Node.js est aussi très efficace ici) |
| Outils de développement | Bundlers (Webpack, Vite), linters, générateurs de sites statiques (Eleventy, Astro) |
| Applications en temps réel | Chat, outils collaboratifs (via WebSocket / Socket.IO) |
| Microservices | Petits services indépendants, faciles à déployer |
| Serveurs légers | Pour héberger des outils internes, des dashboards, des bots |
Écosystème : npm, le plus grand registre de packages au monde
- npm (Node Package Manager) permet d’installer des bibliothèques prêtes à l’emploi (ex. :
expresspour les serveurs,cheeriopour parser du HTML,node-cronpour planifier des tâches). - Plus de 2 millions de packages disponibles → gain de temps énorme.
Attention : cet écosystème est puissant mais fragile (dépendances en cascade, obsolescence rapide).
→ Dans une démarche de résilience, privilégiez les dépendances légères, bien maintenues, et open source.
Node.js vs autres backends
| Techno | Avantages | Inconvénients |
|---|---|---|
| Node.js | JavaScript partout, I/O rapide, grand écosystème | Moins adapté au calcul CPU lourd |
| **Python **(FastAPI/Django) | Lisibilité, data science, maturité | Moins performant en I/O concurrent |
| PHP | Intégré au web, WordPress, simple déploiement | Moins moderne pour les APIs pures |
| Go / Rust | Haute performance, faible empreinte | Courbe d’apprentissage plus forte |
Ressources fiables
The Node.js Handbook **(freeCodeCamp) : complet et pratique
nodejs.org : officiel, téléchargement, docs
nodejs.dev : guide interactif moderne
MDN Web Docs – Node.js basics : gratuit, clair, orienté web