En este módulo, aprenderemos cómo manejar archivos en Node.js. La capacidad de leer y escribir archivos es fundamental para muchas aplicaciones, desde la manipulación de datos hasta la generación de informes. Node.js proporciona un módulo llamado fs (file system) que facilita estas operaciones.

Contenido

  1. Introducción al Módulo fs
  2. Lectura de Archivos
  3. Escritura de Archivos
  4. Manejo de Errores
  5. Ejercicios Prácticos

  1. Introducción al Módulo fs

El módulo fs de Node.js proporciona una API para interactuar con el sistema de archivos de una manera similar a la que se haría con los comandos de la línea de comandos. Para usar este módulo, primero debemos importarlo:

const fs = require('fs');

  1. Lectura de Archivos

Lectura Síncrona

La lectura síncrona de archivos bloquea el hilo de ejecución hasta que la operación se completa. Esto puede ser útil para scripts simples o cuando la operación de lectura es crítica y debe completarse antes de continuar.

const fs = require('fs');

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

Lectura Asíncrona

La lectura asíncrona de archivos no bloquea el hilo de ejecución, permitiendo que otras operaciones continúen mientras se lee el archivo.

const fs = require('fs');

fs.readFile('archivo.txt', 'utf8', (err, data) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(data);
});

  1. Escritura de Archivos

Escritura Síncrona

La escritura síncrona de archivos bloquea el hilo de ejecución hasta que la operación se completa.

const fs = require('fs');

try {
  fs.writeFileSync('archivo.txt', 'Este es el contenido del archivo', 'utf8');
  console.log('Archivo escrito exitosamente');
} catch (err) {
  console.error(err);
}

Escritura Asíncrona

La escritura asíncrona de archivos no bloquea el hilo de ejecución, permitiendo que otras operaciones continúen mientras se escribe el archivo.

const fs = require('fs');

fs.writeFile('archivo.txt', 'Este es el contenido del archivo', 'utf8', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('Archivo escrito exitosamente');
});

  1. Manejo de Errores

Es importante manejar los errores adecuadamente para evitar que nuestra aplicación falle inesperadamente. Node.js proporciona objetos de error que podemos usar para identificar y manejar diferentes tipos de errores.

Ejemplo de Manejo de Errores

const fs = require('fs');

fs.readFile('archivo_inexistente.txt', 'utf8', (err, data) => {
  if (err) {
    if (err.code === 'ENOENT') {
      console.error('Archivo no encontrado');
    } else {
      console.error(err);
    }
    return;
  }
  console.log(data);
});

  1. Ejercicios Prácticos

Ejercicio 1: Leer un Archivo

Instrucciones:

  1. Crea un archivo llamado ejercicio1.txt y escribe algo de texto en él.
  2. Escribe un programa en Node.js que lea el contenido de ejercicio1.txt y lo imprima en la consola.

Solución:

const fs = require('fs');

fs.readFile('ejercicio1.txt', 'utf8', (err, data) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(data);
});

Ejercicio 2: Escribir en un Archivo

Instrucciones:

  1. Escribe un programa en Node.js que escriba el texto "Hola, Node.js!" en un archivo llamado ejercicio2.txt.

Solución:

const fs = require('fs');

fs.writeFile('ejercicio2.txt', 'Hola, Node.js!', 'utf8', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('Archivo escrito exitosamente');
});

Ejercicio 3: Manejo de Errores

Instrucciones:

  1. Modifica el programa del Ejercicio 1 para manejar el error si el archivo ejercicio1.txt no existe.

Solución:

const fs = require('fs');

fs.readFile('ejercicio1.txt', 'utf8', (err, data) => {
  if (err) {
    if (err.code === 'ENOENT') {
      console.error('Archivo no encontrado');
    } else {
      console.error(err);
    }
    return;
  }
  console.log(data);
});

Conclusión

En esta sección, hemos aprendido cómo leer y escribir archivos en Node.js utilizando el módulo fs. También hemos visto cómo manejar errores de manera efectiva. Estas habilidades son fundamentales para cualquier desarrollador que trabaje con Node.js, ya que la manipulación de archivos es una tarea común en muchas aplicaciones. En el próximo módulo, exploraremos cómo trabajar con streams para manejar grandes volúmenes de datos de manera eficiente.

Curso de Node.js

Módulo 1: Introducción a Node.js

Módulo 2: Conceptos Básicos

Módulo 3: Sistema de Archivos y E/S

Módulo 4: HTTP y Servidores Web

Módulo 5: NPM y Gestión de Paquetes

Módulo 6: Framework Express.js

Módulo 7: Bases de Datos y ORMs

Módulo 8: Autenticación y Autorización

Módulo 9: Pruebas y Depuración

Módulo 10: Temas Avanzados

Módulo 11: Despliegue y DevOps

Módulo 12: Proyectos del Mundo Real

© Copyright 2024. Todos los derechos reservados