Écrire dans un fichier
Fait partie de la section Les bases de Node.js du Journey Node.js de Coddy. Leçon 14 sur 33.
add oublie la note dès que le programme se termine.
writeFileSync(path, text) écrit un fichier en remplaçant tout ce qu’il contenait. JSON.stringify transforme un tableau en texte JSON, et null, 2 l’indente de deux espaces pour qu’il soit lisible dans Files.
import { writeFileSync } from 'node:fs';
const scores = [12, 40];
scores.push(31);
writeFileSync('scores.json', JSON.stringify(scores, null, 2));Le fichier contient toujours le tableau entier : charger les notes, en ajouter une, puis toutes les réécrire. Dans store.js, add est une méthode de l’objet store. Dans une méthode, this désigne l’objet lui-même, donc this.notes est le tableau du magasin. Passer directement le tableau provoque une erreur, car un fichier contient du texte.
Défi
FacileCette étape ouvre le projet préparé de l’outil de notes en ligne de commande du cours, plutôt que les fichiers de votre projet de l’étape Lire un fichier (y compris store.js). Votre travail précédent reste dans sa propre leçon. Lisez les fichiers fournis avant de modifier store.js. Cette copie contient l’outil de notes qui lit un fichier.
add oublie toujours la note lorsque le programme se termine. Faites en sorte qu’il enregistre chaque note dans notes.json, afin que list l’affiche à la prochaine exécution.
- Dans
store.js, après queadda ajouté la nouvelle note au tableau, réécrivez tout le tableau dansnotes.jsonau format JSON. Écrivez toutes les notes, pas seulement la nouvelle : l’écriture d’un fichier remplace tout son contenu. Indentez le JSON de deux espaces pour qu’il soit facile à lire dans Files. - Dans
notes.js, dans la brancheadd, remplacez la ligne qui afficheAdding: .... Elle affiche maintenant uniquementSaved note, le numéro de la nouvelle note et un point. Avec les deux notes que contientnotes.jsonau départ,node notes.js add Buy breadaffiche :etSaved note 3.notes.jsoncontient alors :[ "Buy milk", "Call Ada", "Buy bread" ] - En l’absence de
notes.json,addle crée. Aprèsclear,node notes.js add Call AdaafficheSaved note 1., puislistaffiche1. Call Ada.
Essayez : saisissez add Buy bread dans la zone après $ node notes.js, puis appuyez sur Entrée. Vous voyez Saved note 3.. Saisissez list : Buy bread est maintenant la note 3, même s’il s’agit d’une nouvelle exécution. Ouvrez notes.json dans Files pour voir le tableau enregistré. Saisissez ensuite clear, qui supprime le fichier, puis add Call Ada : vous voyez Saved note 1..
Essayez vous-même
import { existsSync, readFileSync } from 'node:fs';
const file = 'notes.json';
const store = {
notes: existsSync(file) ? JSON.parse(readFileSync(file, 'utf8')) : [],
add(text) {
this.notes.push(text);
return this.notes.length;
},
};
export default store;
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ées3Fichiers
Texte JSON et valeursLire un fichierÉcrire du texte JSONÉcrire dans un fichierSupprimer une noteEntraînez-vous par vous-même : Playground Express