Uso de Archivos como Almacenamiento Simple
Desliza para mostrar el menú
Hasta ahora, has aprendido a:
- Leer datos de un archivo;
- Escribir datos en un archivo;
- Añadir nuevo contenido.
Ahora es momento de utilizar archivos como un sistema de almacenamiento simple.
Por Qué Necesitamos Datos Estructurados
Almacenar texto plano no es suficiente para aplicaciones reales.
Por ejemplo:
First note
Second note
Esto es difícil de gestionar porque:
- No se puede actualizar fácilmente una nota específica;
- No se puede organizar la información;
- No se puede añadir información adicional.
Uso de JSON para Almacenamiento
Para almacenar datos estructurados, utilizamos JSON.
JSON se parece a un objeto de JavaScript:
[
{ "text": "First note" },
{ "text": "Second note" }
]
Este formato nos permite:
- Almacenar múltiples elementos;
- Organizar los datos de forma clara;
- Trabajar con ellos en el código.
Paso 1: Leer Datos de un Archivo
const fs = require('fs');
const data = fs.readFileSync('notes.json', 'utf-8');
Esto devuelve una cadena de texto.
Paso 2: Convertir JSON a JavaScript
const notes = JSON.parse(data);
Ahora notes es un arreglo real con el que se puede trabajar.
Paso 3: Actualizar los Datos
notes.push({ text: 'New note' });
Se añade una nueva nota al arreglo.
Paso 4: Guardar los Datos de Nuevo en el Archivo
fs.writeFileSync('notes.json', JSON.stringify(notes));
JSON.stringifyconvierte JavaScript de nuevo a JSON;- el archivo se actualiza con los nuevos datos.
Ejemplo Completo
const fs = require('fs');
// Read file
const data = fs.readFileSync('notes.json', 'utf-8');
// Convert to JS
const notes = JSON.parse(data);
// Update data
notes.push({ text: 'Learn Node.js' });
// Save back
fs.writeFileSync('notes.json', JSON.stringify(notes));
Manejo de la Primera Ejecución (Archivo Vacío)
Si el archivo no existe o está vacío, la aplicación fallará.
Esto se puede solucionar iniciando con un arreglo vacío:
let notes = [];
try {
const data = fs.readFileSync('notes.json', 'utf-8');
notes = JSON.parse(data);
} catch (error) {
notes = [];
}
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla