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.
Défi
FacileCette é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.
- Dans
store.js, remplace la liste fixe de trois notes. La propriéténotesdu magasin doit contenir le tableau enregistré dansnotes.json: lis le fichier sous forme de texte, puis transforme le texte JSON en tableau. - Si
notes.jsonn’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 AdaSans notes.json, la commande affiche :
Notes for you
No notes yetTu 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;
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
1Exécuter JavaScript avec Node
Bonjour, NodeLire la commandeArguments de ligne de commandeCommandes5Événements, entrées et packages
Écouter avant d’émettreÉmetteurs d’événementsLire les entréesEntraînez-vous par vous-même : Playground Express