Escribir un archivo
Parte de la sección Conceptos básicos de Node.js del Journey de Node.js de Coddy. Lección 14 de 33.
add olvida la nota en cuanto termina el programa.
writeFileSync(path, text) escribe un archivo y reemplaza todo lo que contenía. JSON.stringify convierte un arreglo en texto JSON, y null, 2 lo indenta con dos espacios para que se lea bien en Files.
import { writeFileSync } from 'node:fs';
const scores = [12, 40];
scores.push(31);
writeFileSync('scores.json', JSON.stringify(scores, null, 2));El archivo siempre contiene el arreglo completo: carga las notas, añade una y las vuelve a escribir todas. En store.js, add es un método del objeto store. Dentro de un método, this es el objeto en sí, así que this.notes es el arreglo de store. Pasar el arreglo en sí provoca un error, porque un archivo contiene texto.
Desafío
FácilEste paso abre el proyecto preparado de la herramienta de línea de comandos de notas del curso, en lugar de los archivos de tu proyecto de Lectura de un archivo (incluido store.js). Tu trabajo anterior permanece en su propia lección. Lee los archivos proporcionados antes de editar store.js. Esta copia contiene la herramienta de notas que lee archivos.
add sigue olvidando la nota cuando termina el programa. Haz que guarde todas las notas en notes.json, para que list las muestre en la siguiente ejecución.
- En
store.js, después de queaddagregue la nota nueva al arreglo, escribe el arreglo completo de vuelta ennotes.jsoncomo JSON. Escribe todas las notas, no solo la nueva: al escribir un archivo se reemplaza todo lo que había en él. Indenta el JSON con dos espacios para que sea fácil de leer en Archivos. - En
notes.js, en la ramaadd, reemplaza la línea que imprimeAdding: .... Ahora imprime soloSaved note, el número de la nueva nota y un punto. Con las dos notas con las que empiezanotes.json,node notes.js add Buy breadimprime:y entoncesSaved note 3.notes.jsoncontiene:[ "Buy milk", "Call Ada", "Buy bread" ] - Cuando no hay ningún
notes.json,addlo crea. Después declear,node notes.js add Call AdaimprimeSaved note 1., y entonceslistmuestra1. Call Ada.
Pruébalo: escribe add Buy bread en el cuadro después de $ node notes.js y presiona Enter. Verás Saved note 3.. Escribe list: Buy bread ahora es la nota 3, aunque esta sea una nueva ejecución. Abre notes.json en Archivos para ver el arreglo guardado. Luego escribe clear, que elimina el archivo, y add Call Ada: verás Saved note 1..
Pruébalo tú mismo
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;
Todas las lecciones de Conceptos básicos de Node.js
1Ejecutar JavaScript en Node
Hola, NodeLeer el comandoArgumentos de línea de comandosComandos3Archivos
Texto y valores JSONLeer un archivoEscribir texto JSONEscribir un archivoEliminar una notaPractica por tu cuenta: Playground de Express