[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]
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.
[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]
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.

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.

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:
- Cree una aplicación de Full Stack en AWS: 100% sin servidor
- Cómo proteger su aplicación Laravel: los mejores consejos para la seguridad de Laravel
[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]
Diego Pacheco
Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Recent Post
[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]
