Trabajo con el sistema de archivos en JavaScript (Node.js): guía completa para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con el sistema de archivos en JavaScript (Node.js): guía completa para principiantes



Trabajar con el sistema de archivos es una de las tareas clave al crear aplicaciones de servidor, scripts de automatización o utilidades para procesamiento de datos. En JavaScript (Node.js), para esto existe el módulo incorporado fs (File System). Este artículo le presentará los fundamentos del trabajo con archivos y carpetas en Node.js, le mostrará cómo leer, escribir, crear y eliminar archivos, y explicará la diferencia entre métodos síncronos y asíncronos.



¿Qué es el módulo fs en Node.js?



El módulo fs proporciona una API para interactuar con el sistema de archivos del sistema operativo. Permite realizar operaciones como:



  • Lectura del contenido de archivos
  • Escritura de datos en archivos
  • Creación y eliminación de directorios
  • <>Renombrar y copiar archivos
  • Verificar la existencia de archivos
  • Obtener información sobre archivos (estadísticas)


Para comenzar a usar el módulo fs, debe importarlo en su código:



const fs = require('fs');


Todos los métodos del módulo fs están disponibles en tres variantes: síncrona (con el sufijo Sync), asíncrona con callbacks y asíncrona basada en promesas (usando fs.promises). En esta guía nos centraremos en el enfoque moderno utilizando async/await.



Lectura de archivos en Node.js



La forma más sencilla de leer el contenido de un archivo es usar el método readFile de fs.promises. Veamos un ejemplo:



const fs = require('fs').promises;

async function readFileExample() { try { const data = await fs.readFile('example.txt', 'utf8'); console.log('Contenido del archivo:', data); } catch (error) { console.error('Error al leer el archivo:', error.message); }}

readFileExample();


En este ejemplo:

  • Importamos fs.promises — la versión del módulo que devuelve promesas.
  • La función readFile recibe la ruta al archivo y la codificación (en este caso 'utf8').
  • Si el archivo no existe, se lanzará un error que manejamos en el bloque catch.


Si necesita leer un archivo de forma síncrona (en scripts simples), use readFileSync:



const fs = require('fs');

try { const data = fs.readFileSync('example.txt', 'utf8'); console.log(data);} catch (error) { console.error(error.message);}


Importante: Los métodos síncronos bloquean la ejecución del código hasta que se completa la operación. En aplicaciones de servidor (por ejemplo, en Express), use siempre métodos asíncronos para no bloquear el procesamiento de otras solicitudes.



Escritura de datos en archivos



Para escribir datos en un archivo se usa el método writeFile. Si el archivo existe, su contenido se sobrescribirá. Si el archivo no existe, se creará automáticamente.



const fs = require('fs').promises;

async function writeFileExample() { try { const content = '¡Hola, mundo! Esta es una escritura de prueba.'; await fs.writeFile('output.txt', content, 'utf8'); console.log('¡Archivo escrito exitosamente!'); } catch (error) { console.error('Error de escritura:', error.message); }}

writeFileExample();


Si desea agregar datos al final de un archivo existente (sin sobrescribirlo), use la bandera appendFile:



const fs = require('fs').promises;

async function appendToFile() { try { await fs.appendFile('log.txt', `Nueva entrada: ${new Date()}`, 'utf8'); console.log('Datos agregados al final del archivo'); } catch (error) { console.error('Error:', error.message);\

Blogs

Book Recommendations