Skip to content

Différences entre Node.js et le navigateur

Le navigateur et Node.js utilisent tous deux JavaScript comme langage de programmation. Développer des applications qui s'exécutent dans le navigateur est complètement différent de développer une application Node.js. Malgré le fait qu'il s'agisse toujours de JavaScript, il existe des différences clés qui rendent l'expérience radicalement différente.

Du point de vue d'un développeur frontend qui utilise intensivement JavaScript, les applications Node.js apportent un énorme avantage : le confort de programmer tout – le frontend et le backend – dans un seul langage.

Vous avez une énorme opportunité car nous savons à quel point il est difficile d'apprendre pleinement et en profondeur un langage de programmation, et en utilisant le même langage pour effectuer tout votre travail sur le web – à la fois sur le client et sur le serveur, vous êtes dans une position d'avantage unique.

TIP

Ce qui change, c'est l'écosystème.

Dans le navigateur, la plupart du temps, vous interagissez avec le DOM, ou d'autres API de la plateforme web comme les cookies. Celles-ci n'existent pas dans Node.js, bien sûr. Vous n'avez pas le document, window et tous les autres objets fournis par le navigateur.

Et dans le navigateur, nous n'avons pas toutes les API intéressantes que Node.js fournit via ses modules, comme la fonctionnalité d'accès au système de fichiers.

Une autre grande différence est que dans Node.js, vous contrôlez l'environnement. Sauf si vous développez une application open source que n'importe qui peut déployer n'importe où, vous savez sur quelle version de Node.js vous allez exécuter l'application. Comparé à l'environnement du navigateur, où vous n'avez pas le luxe de choisir le navigateur que vos visiteurs utiliseront, c'est très pratique.

Cela signifie que vous pouvez écrire tout le JavaScript ES2015+ moderne que votre version de Node.js supporte. Comme JavaScript évolue très vite, mais que les navigateurs peuvent être un peu lents à mettre à jour, parfois sur le web, vous êtes bloqué avec des versions plus anciennes de JavaScript/ECMAScript. Vous pouvez utiliser Babel pour transformer votre code afin qu'il soit compatible ES5 avant de le déployer sur le navigateur, mais dans Node.js, vous n'en aurez pas besoin.

Une autre différence est que Node.js supporte à la fois les systèmes de modules CommonJS et ES (depuis Node.js v12), tandis que dans le navigateur, nous commençons à voir la mise en œuvre de la norme ES Modules.

En pratique, cela signifie que vous pouvez utiliser require() et import dans Node.js, tandis que vous êtes limité à import dans le navigateur.