Menu
CoddyTech

Leer un archivo

Parte de la sección Conceptos básicos de Node.js del Journey de Node.js de Coddy. Lección 12 de 33.

Cada ejecución empieza con las mismas tres notas, porque solo están en la memoria.

readFileSync(path, 'utf8') de node:fs lee un archivo como una cadena. Un archivo de notas contiene JSON, un formato de texto para datos escritos como matrices y objetos de JavaScript, y JSON.parse convierte ese texto en una matriz. Leer un archivo que no existe genera un error ENOENT, así que compruébalo primero con existsSync. El ejemplo usa condition ? a : b, que da a cuando la condición es verdadera y b cuando es falsa.

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

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

Sin 'utf8', obtienes un Buffer, los bytes sin procesar del archivo, en lugar de una cadena.

challenge icon

Desafío

Fácil

Este paso abre el proyecto de la herramienta de línea de comandos para notas preparado para el curso, en lugar de los archivos de tu proyecto de Módulos CommonJS (incluido legacy/stats.cjs). Tu trabajo anterior sigue en su propia lección. Lee los archivos proporcionados antes de editar store.js. Esta copia contiene todos los comandos hasta ahora, además de un nuevo comando clear.

Ahora mismo, cada ejecución empieza con las mismas tres notas escritas en store.js. En su lugar, tus notas deberían proceder de un archivo: notes.json, que puedes abrir en Files.

  1. En store.js, reemplaza la lista fija de tres notas. notes del almacén debe contener el array guardado en notes.json: lee el archivo como texto y luego convierte el texto JSON en un array.
  2. Si notes.json no existe, el almacén empieza con un array vacío en lugar de detenerse con un error. Comprueba que el archivo existe antes de leerlo.

notes.json empieza con dos notas, así que node notes.js list imprime:

Notes for you
1. Buy milk
2. Call Ada

Si no hay notes.json, imprime:

Notes for you
No notes yet

Solo cambias store.js. notes.js ya imprime No notes yet cuando el almacén está vacío.

Pruébalo: escribe list en el cuadro después de $ node notes.js y pulsa Intro. Verás las dos notas del archivo. Luego escribe clear. Este comando ya está en notes.js: elimina notes.json e imprime Deleted notes.json. Escribe list de nuevo: verás No notes yet. Antes de pulsar «Comprobar», pulsa Restablecer archivos para recuperar notes.json, porque las comprobaciones lo necesitan.

Pruébalo tú mismo

// Carga las notas desde notes.json en lugar de esta lista.
const store = {
    notes: ['Buy milk', 'Call Ada', 'Water the plants'],
    add(text) {
        this.notes.push(text);
        return this.notes.length;
    },
};

export default store;
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Conceptos básicos de Node.js

Practica por tu cuenta: Playground de Express