Aprende a dominar el módulo de fs en Node.js para crear, leer, actualizar y eliminar archivos de forma segura. Verás cómo estructurar un CRUD paso a paso en un script fs.js, ejecutar desde la terminal y detectar errores comunes en console.log.
¿Cómo usar fs para un CRUD de archivos en Node.js?
El módulo fs (file system) es nativo de Node.js y permite interactuar con el sistema de archivos. Con él implementas un CRUD completo: crear archivos, leer su contenido, actualizarlos agregando nuevas líneas y eliminarlos cuando ya no se necesiten.
Importa el módulo nativo con require.
Define un nombre de archivo estable, por ejemplo example.txt.
Estructura cada acción del CRUD con funciones síncronas para simplificar el flujo.
Evita errores de sintaxis: si omites la coma entre el primer string y la variable en console.log, verás un aviso de “falta un argumento”.
Idea clave: especificar 'utf-8' evita recibir un buffer.
¿Cómo actualizar con appendFileSync y saltos de línea?
Agrega texto al final y cuida la organización con saltos de línea.
fs.appendFileSync(filename,'\nesta es una nueva línea.\n');console.log('archivo actualizado correctamente');
Usa "\n" para separar líneas y mantener legible el archivo.
Idea clave: append no reemplaza, suma contenido.
¿Qué errores y flujo de ejecución debes considerar?
Cuando un mismo script contiene todas las fases del CRUD, cada ejecución repite el flujo: crear, leer, actualizar y, si lo incluyes, eliminar. Por eso el estado del archivo parecerá “reiniciarse” al inicio y luego volver a cambiar con las operaciones siguientes. Ejecuta desde la terminal integrada de Visual Studio Code para observar el orden de los mensajes.
Comando de ejecución:
node fs.js
Eliminación del archivo con unlinkSync y confirmación del estado:
Idea clave: el flujo secuencial importa. Si creas y luego actualizas en el mismo run, verás el contenido inicial y después la nueva línea agregada.
Validación continua: usa console.log para saber en qué paso estás y qué dato llega.
Organización: separa lógicas en funciones si luego quieres ejecutar solo una fase del CRUD.
Conceptos y palabras clave integrados en el flujo:
fs (file system): módulo nativo para operar archivos.
CRUD: crear, leer, actualizar, eliminar archivos y carpetas.
writeFileSync, readFileSync, appendFileSync, unlinkSync: funciones síncronas para un control directo del orden de ejecución.
UTF-8: codificación estándar al leer con readFileSync.
console.log: visor de estado y errores de sintaxis si faltan argumentos.
Terminal de Visual Studio Code: ejecución rápida con node fs.js.
¿Quieres que armemos una versión que guarde transcripciones de audio y las organice por fecha y carpeta? Cuéntame en comentarios qué estructura te gustaría y lo construimos paso a paso.
Cabe mencionar que cuando estamos trabajando con archivos y directorios del sistema operativo, es necesario incluir una lógica para manejo de errores en nuestro código y además mejorar la usabilidad previniendo al usuario de cometer acciones destructivas como eliminar archivos y directorios.
Como dato adicional, cuando usamos fs de manera asíncrona tenemos que usar otros métodos, por ejemplo, readFileSync() no nos serviría, en este caso sería .readFile()
Muchas gracias por el aporte!
🚩¿Cuándo usar fs.writeFileSync() y fs.writeFile() ?
Métodos revisados en esta clase:
Escribir en un archivo --> método fs.writeFileSync(nombreArchivo, data)
Leer un archivo --> método fs.readFileSync(path[, options])
Escribir una nueva línea (actualizar) en un archivo --> método fs.appendFileSync(path, data[, options])
Eliminar un archivo --> método fs.unlinkSync(path)
Recuerda lo siguiente:
usos reales del módulo nativo fs de Node.js:
Gestión de logs del sistema (crear, rotar y limpiar archivos de registro).
Lectura y escritura de archivos de configuración (.json, .env personalizados).
Almacenamiento temporal de datos en procesos batch o scripts.
Manejo de uploads: guardar, renombrar y eliminar archivos subidos por usuarios.
Persistencia simple sin base de datos (prototipos, scripts, herramientas internas).
Generación dinámica de archivos (reportes, facturas, exports).
Validación de existencia y permisos de archivos/directorios.
Sincronización de archivos entre entornos o carpetas locales.
Procesamiento de archivos grandes usando streams (logs, CSV, backups).
Automatización de tareas del sistema (limpieza de carpetas, backups locales).
fs sigue siendo clave en Node.js para tareas de bajo nivel, automatización y tooling; mal usado en apps grandes puede volverse un cuello de botella si no se combina con streams y async.
Saludos, decirle que al usar Sync, signgifa que es sincrona y puede traernos problemas si en el momento nuestra aplicación está realizando otras acciones o ejecutando otros hilos, es siempre recomendado que usen el fs.readFile.... Así tendrán que pasarle un callback y capturar errores y hacer que nuestra funcion o archivo sea asincrona.