El módulo fs (file system) en Nodejs es utilizado para interactuar con el sistema de archivos en una máquina local. Con el uso de este módulo, podemos leer/escribir/eliminar/renombrar archivos o directorios en una ruta específica.
Uso básico del módulo fs
Para importar el módulo fs, solo debemos agregar la siguiente línea de código al principio del archivo:
const fs = require('fs');
Una vez que tenemos el módulo fs importado, podemos hacer uso de sus funciones. Algunas de las funciones más utilizadas son:
fs.readFileSync(path: string, options: string/objeto)
La función fs.readFileSync (leer archivo de forma síncrona) se utiliza para leer el contenido de un archivo en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de leer el archivo.
const fs = require('fs'); const path = './archivo.txt'; // ruta del archivo const options = {encoding: 'utf-8'}; // opciones de lectura const contenidoArchivo = fs.readFileSync(path, options); console.log(contenidoArchivo); // imprimir el contenido del archivo
fs.readFile(path: string, options: string/objeto, callback: función)
La función fs.readFile (leer archivo de forma asíncrona) se utiliza para leer el contenido de un archivo en forma asíncrona. Es decir, el código no espera a que se termine de leer el archivo, sino que continúa su ejecución. En esta función, se debe pasar como tercer argumento una función de callback que recibirá el contenido del archivo.
const fs = require('fs'); const path = './archivo.txt'; // ruta del archivo const options = {encoding: 'utf-8'}; // opciones de lectura fs.readFile(path, options, (err, contenidoArchivo) => { if (err) { console.error(err); return; } console.log(contenidoArchivo); // imprimir el contenido del archivo });
fs.writeFileSync(path: string, data: string/objeto, options: string/objeto)
La función fs.writeFileSync (escribir archivo de forma síncrona) se utiliza para escribir el contenido en un archivo en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de escribir el archivo.
const fs = require('fs'); const path = './archivo.txt'; // ruta del archivo const options = {encoding: 'utf-8'}; // opciones de escritura const data = 'Este es el contenido del archivo'; // contenido a escribir fs.writeFileSync(path, data, options);
fs.writeFile(path: string, data: string/objeto, options: string/objeto, callback: función)
La función fs.writeFile (escribir archivo de forma asíncrona) se utiliza para escribir el contenido en un archivo en forma asíncrona. Es decir, el código no espera a que se termine de escribir el archivo, sino que continúa su ejecución. En esta función, se debe pasar como cuarto argumento una función de callback que se llamará cuando se termine de escribir el archivo.
const fs = require('fs'); const path = './archivo.txt'; // ruta del archivo const options = {encoding: 'utf-8'}; // opciones de escritura const data = 'Este es el contenido del archivo'; // contenido a escribir fs.writeFile(path, data, options, (err) => { if (err) { console.error(err); return; } console.log('El archivo se ha escrito correctamente'); });
fs.appendFileSync(path: string, data: string/objeto, options: string/objeto)
La función fs.appendFileSync (agregar contenido a un archivo de forma síncrona) se utiliza para agregar contenido a un archivo en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de agregar el contenido al archivo.
const fs = require('fs'); const path = './archivo.txt'; // ruta del archivo const options = {encoding: 'utf-8'}; // opciones de escritura const data = '\nEste es un nuevo contenido que se agrega al archivo'; // contenido a agregar fs.appendFileSync(path, data, options);
fs.appendFile(path: string, data: string/objeto, options: string/objeto, callback: función)
La función fs.appendFile (agregar contenido a un archivo de forma asíncrona) se utiliza para agregar contenido a un archivo en forma asíncrona. Es decir, el código no espera a que se termine de agregar el contenido al archivo, sino que continúa su ejecución. En esta función, se debe pasar como cuarto argumento una función de callback que se llamará cuando se termine de agregar el contenido al archivo.
const fs = require('fs'); const path = './archivo.txt'; // ruta del archivo const options = {encoding: 'utf-8'}; // opciones de escritura const data = '\nEste es un nuevo contenido que se agrega al archivo'; // contenido a agregar fs.appendFile(path, data, options, (err) => { if (err) { console.error(err); return; } console.log('Se ha agregado el contenido al archivo'); });
fs.readdirSync(path: string, options: string)
La función fs.readdirSync se utiliza para leer un directorio en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de leer el directorio. Esta función devuelve un array con el nombre de los archivos y/o directorios que se encuentran en el directorio especificado.
const fs = require('fs'); const path = './mi_directorio'; // ruta del directorio const options = {withFileTypes: true}; // opciones de lectura const contenidoDirectorio = fs.readdirSync(path, options); console.log(contenidoDirectorio); // imprimir el contenido del directorio
fs.readdir(path: string, options: string, callback: función)
La función fs.readdir se utiliza para leer un directorio en forma asíncrona. Es decir, el código no espera a que se termine de leer el directorio, sino que continúa su ejecución. En esta función, se debe pasar como tercer argumento una función de callback que recibirá un array con el nombre de los archivos y/o directorios que se encuentran en el directorio especificado.
const fs = require('fs'); const path = './mi_directorio'; // ruta del directorio const options = {withFileTypes: true}; // opciones de lectura fs.readdir(path, options, (err, contenidoDirectorio) => { if (err) { console.error(err); return; } console.log(contenidoDirectorio); // imprimir el contenido del directorio });
fs.mkdirSync(path: string, options: string)
La función fs.mkdirSync se utiliza para crear un nuevo directorio en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de crear el directorio.
const fs = require('fs'); const path = './mi_directorio_nuevo'; // ruta del nuevo directorio const options = {recursive: true}; // opciones de creación fs.mkdirSync(path, options);
fs.mkdir(path: string, options: string, callback: función)
La función fs.mkdir se utiliza para crear un nuevo directorio en forma asíncrona. Es decir, el código no espera a que se termine de crear el directorio, sino que continúa su ejecución. En esta función, se debe pasar como tercer argumento una función de callback que se llamará cuando se termine de crear el directorio.
const fs = require('fs'); const path = './mi_directorio_nuevo'; // ruta del nuevo directorio const options = {recursive: true}; // opciones de creación fs.mkdir(path, options, (err) => { if (err) { console.error(err); return; } console.log('El nuevo directorio se ha creado correctamente'); });
fs.rmdirSync(path: string)
La función fs.rmdirSync se utiliza para eliminar un directorio vacío en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de eliminar el directorio.
const fs = require('fs'); const path = './mi_directorio_vacio'; // ruta del directorio vacío fs.rmdirSync(path);
fs.rmdir(path: string, callback: función)
La función fs.rmdir se utiliza para eliminar un directorio vacío en forma asíncrona. Es decir, el código no espera a que se termine de eliminar el directorio, sino que continúa su ejecución. En esta función, se debe pasar como segundo argumento una función de callback que se llamará cuando se termine de eliminar el directorio.
const fs = require('fs'); const path = './mi_directorio_vacio'; // ruta del directorio vacío fs.rmdir(path, (err) => { if (err) { console.error(err); return; } console.log('El directorio vacío se ha eliminado correctamente'); });
fs.unlinkSync(path: string)
La función fs.unlinkSync se utiliza para eliminar un archivo en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de eliminar el archivo.
const fs = require('fs'); const path = './archivo_a_eliminar.txt'; // ruta del archivo a eliminar fs.unlinkSync(path);
fs.unlink(path: string, callback: función)
La función fs.unlink se utiliza para eliminar un archivo en forma asíncrona. Es decir, el código no espera a que se termine de eliminar el archivo, sino que continúa su ejecución. En esta función, se debe pasar como segundo argumento una función de callback que se llamará cuando se termine de eliminar el archivo.
const fs = require('fs'); const path = './archivo_a_eliminar.txt'; // ruta del archivo a eliminar fs.unlink(path, (err) => { if (err) { console.error(err); return; } console.log('El archivo se ha eliminado correctamente'); });
fs.renameSync(oldPath: string, newPath: string)
La función fs.renameSync se utiliza para renombrar un archivo o un directorio en forma sincrónica. Es decir, el código se espera hasta que se haya terminado de renombrar el archivo o el directorio.
const fs = require('fs'); const oldPath = './archivo_antiguo.txt'; // ruta del archivo antiguo const newPath = './archivo_nuevo.txt'; // ruta del archivo nuevo fs.renameSync(oldPath, newPath);
fs.rename(oldPath: string, newPath: string, callback: función)
La función fs.rename se utiliza para renombrar un archivo o un directorio en forma asíncrona. Es decir, el código no espera a que se termine de renombrar el archivo o el directorio, sino que continúa su ejecución. En esta función, se debe pasar como tercer argumento una función de callback que se llamará cuando se termine de renombrar el archivo o el directorio.
const fs = require('fs'); const oldPath = './archivo_antiguo.txt'; // ruta del archivo antiguo const newPath = './archivo_nuevo.txt'; // ruta del archivo nuevo fs.rename(oldPath, newPath, (err) => { if (err) { console.error(err); return; } console.log('El archivo se ha renombrado correctamente'); });
Conclusión
El módulo fs en Nodejs es una herramienta esencial para el manejo de archivos y directorios en una máquina local. Con el uso de este módulo, podemos realizar operaciones como leer/escribir/eliminar/renombrar archivos o directorios en una ruta específica. Como desarrolladores, debemos ser cuidadosos al interactuar con el sistema de archivos y asegurarnos de que nuestras operaciones sean seguras y cumplen con nuestras expectativas.
Deja una respuesta