Menu
CoddyTech

Lire un fichier

Fait partie de la section Les bases de Node.js du Journey Node.js de Coddy. Leçon 12 sur 33.

Chaque exécution commence avec les mêmes trois notes, car elles vivent uniquement en mémoire.

readFileSync(path, 'utf8') de node:fs lit un fichier sous forme de chaîne. Un fichier de notes contient du JSON, un format texte pour les données écrites comme des tableaux et des objets JavaScript, et JSON.parse transforme ce texte en tableau. La lecture d’un fichier inexistant déclenche une erreur ENOENT ; vérifie donc d’abord avec existsSync. L’exemple utilise condition ? a : b, qui renvoie a si la condition est vraie et b si elle est fausse.

import { existsSync, readFileSync } from 'node:fs';

const scores = existsSync('scores.json')
    ? JSON.parse(readFileSync('scores.json', 'utf8'))
    : [];
console.log(scores.length);

Sans 'utf8', tu obtiens un Buffer, c’est-à-dire les octets bruts du fichier, au lieu d’une chaîne.

challenge icon

Défi

Facile

Cette étape ouvre le projet de l’outil en ligne de commande de notes préparé pour le cours, et non les fichiers de ton projet de modules CommonJS (y compris legacy/stats.cjs). Ton travail précédent reste dans sa propre leçon. Lis les fichiers fournis avant de modifier store.js. Cette copie contient toutes les commandes vues jusqu’ici, ainsi qu’une nouvelle commande clear.

Pour le moment, chaque exécution commence avec les mêmes trois notes écrites dans store.js. Tes notes devraient plutôt provenir d’un fichier : notes.json, que tu peux ouvrir dans Files.

  1. Dans store.js, remplace la liste fixe de trois notes. La propriété notes du magasin doit contenir le tableau enregistré dans notes.json : lis le fichier sous forme de texte, puis transforme le texte JSON en tableau.
  2. Si notes.json n’existe pas, le magasin démarre avec un tableau vide au lieu de s’arrêter avec une erreur. Vérifie que le fichier existe avant de le lire.

notes.json commence avec deux notes ; node notes.js list affiche donc :

Notes for you
1. Buy milk
2. Call Ada

Sans notes.json, la commande affiche :

Notes for you
No notes yet

Tu modifies uniquement store.js. notes.js affiche déjà No notes yet lorsque le magasin est vide.

Essaie : saisis list dans la zone après $ node notes.js, puis appuie sur Entrée. Tu vois les deux notes du fichier. Saisis ensuite clear. Cette commande se trouve déjà dans notes.js : elle supprime notes.json et affiche Deleted notes.json. Saisis de nouveau list : tu vois No notes yet. Avant d’appuyer sur « Vérifier », clique sur Réinitialiser les fichiers pour rétablir notes.json, car les vérifications en ont besoin.

Essayez vous-même

// Chargez les notes depuis notes.json au lieu de cette liste.
const store = {
    notes: ['Buy milk', 'Call Ada', 'Water the plants'],
    add(text) {
        this.notes.push(text);
        return this.notes.length;
    },
};

export default store;
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les bases de Node.js

Entraînez-vous par vous-même : Playground Express