0.3 · Premier script & le REPL Node

Prise en main

0.3Premier script & le REPL Node

Objectif : Exécuter du JavaScript en Node de deux façons (REPL et fichiers .js), utiliser console.log et découvrir les objets globaux propres à Node.
Temps estimé : 8 min · lecture autonome · Si vous n'avez que 5 min : lisez « L'essentiel en 30s » + le schéma.

L'essentiel en 30 secondes

  • Deux modes : REPL pour expérimenter, fichier .js pour développer : node seul en interactif, node app.js pour le durable.
  • console.log affiche dans le terminal : l'outil de base pour voir, tracer et déboguer vos valeurs.
  • Globaux Node, pas de DOM : process, __dirname, global — et jamais window ni document dans Node.

Mini-cas filé — Salim exécute son premier Hello

Salim, développeur junior à Alger, ouvre le terminal : il tape node seul et teste 1 + 1 dans le REPL, puis en sort. Ensuite il crée app.js avec un console.log de bienvenue, l'exécute avec node app.js, affiche les arguments reçus et le dossier courant. Quand il cherche window par réflexe du front, Node lui répond que cela n'existe pas : il comprend qu'ici on accède au système, pas à une page. Sa chaîne aller-retour « éditer, lancer, lire » fonctionne.

Cas autonome de cette section : il revient dans le cours, le schéma, le script et le défi 48h de la section 0.3.

1. REPL et fichier script

Deux façons d'exécuter du JavaScript. Le REPL (Read-Eval-Print Loop) : en tapant node seul, vous ouvrez un environnement interactif qui évalue chaque ligne aussitôt — parfait pour expérimenter, tester une expression ou explorer une fonction (on en sort avec .exit). La façon principale : le fichier script. On écrit son code dans un .js et on le lance avec node app.js — c'est ainsi qu'on développe de vraies applications, sauvegardées et versionnables. Salim retient : REPL pour le brouillon jetable, fichier pour construire.

2. console.log et les globaux Node

console.log() affiche dans le terminal : l'équivalent de « print », votre outil de base pour voir des valeurs et déboguer. Node fournit des objets globaux propres : process (arguments via process.argv, environnement via process.env, sortie via process.exit()), __dirname et __filename (dossier et fichier courants), et global. Salim les affiche un par un dans son app.js à Alger et lit chaque valeur dans le terminal.

3. Node n'est pas un navigateur

Différence clé avec le front : dans Node, pas de window, document ni DOM — il n'y a pas de page web. En revanche, accès au système (fichiers, réseau, processus) via modules et globaux. Un code qui manipule le DOM ne tourne pas en Node, et inversement. Salim a collé ce rappel au-dessus de son écran : « ici, pas de page — des fichiers, des arguments, des processus ». Maîtriser ces deux modes et ces globaux, c'est être prêt à écrire de vrais programmes.

Erreur d'interprétation fréquente : « Le REPL suffit pour développer, et window existe partout en JS ». Non. Le REPL est éphémère : rien n'est sauvegardé, le code long y est pénible — il sert à tester vite, pas à construire. Et window, document et le DOM n'existent pas dans Node : chercher à manipuler une page y échoue toujours. La bonne pratique : développer dans des fichiers .js (sauvegardés, relisibles, versionnables) et réserver le REPL aux essais jetables.
Exécuter du code Node Brouillon jetable ou travail durable : choisir le bon mode. REPL node seul,interactif, jetableFichier .js node app.js,pour développerGlobaux Node process,__dirname, global
Brouillon jetable ou travail durable : choisir le bon mode.
Version texte du schéma (SEO / lecteurs d'écran / traduction) : 1) Salim, développeur junior à Alger, ouvre le REPL avec node seul : il teste des expressions et en sort avec .exit. 2) Il crée app.js avec console.log, le lance avec node app.js, puis affiche process.argv et __dirname. 3) Il constate que window et document n'existent pas : Node accède au système, pas à une page. Leçon : REPL pour expérimenter vite, fichier pour développer durablement.

🔎 Exemple concret — 🔎 Exemple concret — Hello, Node !

console.log("Hello, Node !");
console.log(process.argv);
console.log(__dirname);
// lancer : node app.js Salim

Lecture : Salim voit son message, la liste des arguments puis le dossier courant.

Leçon : la chaîne éditer, lancer, lire fonctionne de bout en bout.

Vocabulaire de la section

REPL
Environnement interactif ouvert avec node seul : lit, évalue et imprime le JavaScript ligne par ligne ; idéal pour expérimenter.

Exemple simple : Salim tape 1 + 1 dans le REPL et lit aussitôt le résultat.

Ce que ce n'est pas : un fichier sauvegardé et versionnable.

Réflexe : ouvrir le REPL pour tester une idée avant de l'écrire en fichier.

Exécuter un fichier
Façon principale de travailler : écrire son code dans un .js et le lancer avec node fichier.js, qui exécute tout le fichier.

Exemple simple : Salim lance node app.js et voit son Hello s'afficher.

Ce que ce n'est pas : taper tout un programme ligne par ligne dans le REPL.

Réflexe : dès que cela dépasse deux lignes, passer en fichier.

console.log()
Fonction d'affichage dans le terminal ; outil de base pour voir des valeurs, tracer l'exécution et déboguer.

Exemple simple : Salim affiche chaque variable avec console.log avant de chercher plus loin.

Ce que ce n'est pas : un retour visuel dans une page web.

Réflexe : afficher d'abord, supposer ensuite.

process
Objet global Node sur le processus en cours : arguments (process.argv), environnement (process.env), sortie (process.exit()).

Exemple simple : Salim lit le prénom passé en argument via process.argv à Alger.

Ce que ce n'est pas : window ou document, qui n'existent pas dans Node.

Réflexe : lire argv pour tout petit outil en ligne de commande.

Globaux Node vs navigateur
Node offre process, __dirname, __filename et global avec accès système ; il n'a ni window, ni document, ni DOM.

Exemple simple : Salim remplace document par __dirname quand il cherche où il est.

Ce que ce n'est pas : le même environnement des deux côtés.

Réflexe : devant window is not defined, basculer en logique système.

En pratique — En pratique — Exécuter son premier code Node

  1. Ouvrez le REPL avec node seul ; testez quelques expressions puis sortez avec .exit, comme Salim.
  2. Créez app.js avec un console.log de bienvenue et lancez-le avec node app.js.
  3. Affichez process.argv et __dirname depuis le fichier ; relancez avec un argument (node app.js Salim).
  4. Constatez que window et document n'existent pas dans Node ; en revanche on accède au système.
Vous exécutez du JavaScript en Node de deux façons (REPL interactif et fichiers .js), utilisez console.log et découvrez les objets globaux propres à Node.

Script prêt à dire — raconter sa première exécution (30 s)

« J'ai testé dans le REPL avec node seul, puis j'ai écrit app.js avec un console.log. Avec node app.js Salim, je vois mon message, mes arguments et mon dossier courant. Et j'ai vérifié : pas de window ici, on parle au système. »

À dire en montrant le terminal : d'abord le REPL, puis l'exécution du fichier avec argument.

Modèle copier-coller — mon premier app.js

const prenom = process.argv[2] || "Salim";
console.log("Hello, Node ! Bienvenue " + prenom + ".");
console.log("Dossier courant : " + __dirname);
console.log("Arguments recus : " + JSON.stringify(process.argv.slice(2)));

Sans argument

Lancez node app.js sans rien : le modèle affiche Salim par défaut, puis relancez avec votre prénom pour voir process.argv changer.

Explorateur REPL

Avant le fichier : testez chaque ligne du modèle une par une dans le REPL, puis assemblez-les dans app.js — le brouillon devient durable.

Binôme à Alger

Salim dicte, son collègue tape : l'un lit le terminal à voix haute (message, dossier, arguments), l'autre vérifie chaque valeur affichée.

Réflexe débogage

Programme muet : ajoutez un console.log après chaque étape (entrée, calcul, sortie) et relancez — le plus vieux débogueur reste le plus rapide.

✓ Bonnes pratiques

  • Utilisez le REPL pour tester une idée ou explorer une fonction.
  • Développez dans des fichiers .js (sauvegardés, versionnables).
  • Connaissez process, __dirname et global dès le départ.

✗ Pièges fréquents

  • Écrire un programme entier dans le REPL éphémère.
  • Chercher window ou document dans Node (ils n'existent pas).
  • Oublier que console.log est l'outil de débogage de base.

Points clés à retenir

  • Deux façons d'exécuter : le REPL (node seul, pour EXPÉRIMENTER) et les fichiers script (node app.js, pour DÉVELOPPER).
  • console.log() = l'affichage terminal : outil de base pour voir des valeurs et déboguer.
  • Objets globaux Node : process (argv, env, exit), __dirname et __filename, global — spécifiques à Node.
  • Différence clé : PAS de window, document ni DOM dans Node ; en revanche, accès au système.

Défi 48h — appliquez demain

Créez app.js avec le modèle de Salim, lancez-le avec puis sans argument, et testez une ligne du fichier dans le REPL.

Checklist sortie de section
  • Je lance le REPL et un fichier .js en expliquant quand utiliser chacun.
  • Mon app.js affiche message, arguments et dossier courant.
  • Je cite les globaux Node et l'absence de window et document.
Auto-évaluation 1-5 : est-ce que je choisis REPL ou fichier selon l'usage ?Auto-évaluation 1-5 : ai-je affiché argv et __dirname sans aide ?

Questions fréquentes

Quelle différence entre le REPL et l'exécution d'un fichier, et quand utiliser lequel ?

Le REPL (node seul) évalue ligne par ligne avec résultat immédiat : idéal pour expérimenter (tester une fonction, explorer un module, vérifier une idée). Il est éphémère : rien n'est sauvegardé, inadapté au code long. L'exécution de fichier (node app.js) exécute tout un .js sauvegardé, éditable dans VS Code et versionnable : c'est le mode du vrai travail (serveur, script, outil). En pratique : on développe en fichiers et on ouvre le REPL en brouillon ponctuel avant d'intégrer.

Qu'est-ce qui change vraiment entre le JavaScript du navigateur et celui de Node ?

Le langage est identique (syntaxe, types, fonctions, classes, Promises, async/await — même moteur V8). Ce qui change, c'est l'environnement : pas de DOM dans Node (ni document, ni window, ni éléments HTML), mais un accès au système interdit au navigateur (fichiers, réseau, processus via process, système via modules). Les globaux diffèrent (process, __dirname, global contre window, document) et Node a son écosystème npm. Venir du front est un atout : on connaît déjà la langue, il reste à apprendre l'environnement Node.

Vérifiez votre compréhension

Quand utiliser le REPL plutôt qu'un fichier .js ?

Ressources supplémentaires (optionnel, pour aller plus loin)

Examen du niveau 0Questions inédites et durcies pour valider vos acquis