archivos en Nodejs y su sistema

archivos en nodejs

Sistema de archivos en Nodejs

Artículo básico sobre manejo de archivos en Nodejs. Módulo de sistema de archivos con operaciones de lectura, escritura y eliminación.


Concepto de sistema de archivos

Un sistema de archivos es la estructura del sistema operativo para organizar, controlar y almacenar datos. Los sistemas de archivos, además del control, agregan algunas funciones adicionales, como capas de acceso, atributos y convenciones.

Los sistemas de archivos en particular actúan en el sistema operativo como una interfaz para todos los demás dispositivos conectados a la computadora (memorias USB, unidades externas, etc.). Actualmente, existen diferentes tipos de sistemas de archivos según el sistema operativo host, como Windows, macOS o Linux. Estos sistemas tienen algunas similitudes, aunque en principio son incompatibles entre sí.

Los sistemas de archivos más comunes hasta la fecha son:

  • Windows / FAT16, FAT32, exFAT y NTFS.
  • MacOs / HFS+ y APFS.
  • Linux / Ext4.

🧐 | NOTA: Para verificar el sistema de archivos de su computadora, consulte la documentación del SO respectivo. Ejemplo de Windows.

archivos en Node.js

Concepto de archivo

Como se mencionó anteriormente, un archivo es básicamente una secuencia de bytes que se almacenan en el dispositivo. Se denominan archivos porque son equivalentes a archivos físicos como papeles, cuadernos, etc.

La particularidad de los archivos es que tienen un nombre y una extensión asociada comúnmente compuesta por 3 o 4 letras. La extensión describe el contenido del archivo, ayudando a los programas a poder manipular y mostrar el contenido al usuario según sea el caso (JPG, PNG, TXT, etc).

🧐 | NOTA: Para obtener información sobre un determinado archivo, verifique sus propiedades. Ejemplo de Windows.

archivos en Node.js

Sistema de archivos del módulo

Nodejs en particular contiene un módulo central, especialmente para la manipulación de archivos llamado Filesystem. Este módulo nos ayuda con el soporte de archivos sin importar el sistema operativo. El módulo funciona sobre la base de devoluciones de llamadas, transmisiones y eventos como la mayoría de los módulos en Nodejs.

Aquí hay un ejemplo de un programa Nodejs que lee el contenido de un archivo de texto ubicado en el directorio actual.

const fs = require('fs');fs.readFile('./hello.txt', { encoding: 'utf8'}, (err, data)=> {
  if (err) throw err;
  console.log(data);
});

Esto imprime el siguiente resultado en la consola:

hello world

🧐 | NOTA:  El resultado anterior, en concreto, es un búfer, cuando leemos debemos indicar la codificación para interpretar el contenido.

Métodos básicos de manejo de archivos

El módulo Sistema de archivos contiene los siguientes métodos básicos principales que nos ayudan a manipular archivos:

  • Lectura de archivos: readFile y readFileSync.
  • Escritura de archivos: writeFile y writeFileSync.
  • Eliminación de archivos: unlink y unlinkSync.

Dependiendo de las necesidades, Nodejs nos proporciona estos métodos en modo asíncrono por defecto y opcionalmente síncrono (Sync).

Lectura de archivos

Aquí hay un ejemplo de un programa de Nodejs que lee el contenido de un archivo de texto de forma asincrónica y sincrónica.

readFile

fs.readFile('./words.txt', { encoding: "utf-8" }, (err, data) => {
if (err) throw err;
console.log(data);
});

readFileSync

const fs = require('fs');try {
  const data = fs.readFileSync('./words.txt', { encoding: "utf-8" });
  console.log(data);
} catch (err) {
  throw err;
}

Estas dos formas imprimen el mismo resultado en la consola:

word1 word2

Escribir archivos

Aquí hay un ejemplo de un programa de Nodejs que crea un nuevo archivo y escribe el contenido de forma asincrónica y sincrónica.

writeFile

const fs = require('fs');const text = "Hello world";fs.writeFile('./file.txt', text, (err) => {
  if (err) throw err;
});

writeFileSync

const fs = require('fs');const text = "Hello world";try {
  fs.writeFileSync('./file.txt', text);
} catch (err) {
  throw err;
}

Estas dos formas crean el archivo llamado file.txt en el directorio actual con el contenido de:

Hello world

Eliminación de archivos

Aquí hay un ejemplo de un programa de Nodejs que elimina un archivo en el directorio actual de forma asincrónica y sincrónica.

unlink

const fs = require('fs');fs.unlink('./file.txt', (err) => {
  if (err) throw err;
});

unlinkSync

const fs = require('fs');try {
  fs.unlinkSync('./file.txt');
} catch (err) {
  throw err;
}

Ambas formas eliminan el archivo file.txt en el directorio actual.

Recursos Sistema de archivos Nodejs

  • API del sistema de archivos: documentación, conceptos y ejemplos.

Gracias por llegar hasta aquí, si encuentra esto útil no olvide aplaudir “👍🏼” y suscribirse para recibir más contenido.

Si necesita ayuda adicional, por favor contácteme.


Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre Laravel:

Recent Post