Entrada
Node.js

Trabajar con archivos usando el módulo fs de Node.js

Node.js: Trabajar con archivos usando el módulo fs de Node.js

1. ¿Qué es el módulo fs?

El módulo fs es una librería integrada de Node.js que permite acceder al sistema de archivos del servidor. Con él podemos realizar tareas como:

  • Leer archivos
  • Crear archivos
  • Escribir o modificar archivos
  • Crear o eliminar carpetas
  • Listar contenidos de directorios

2. Leer archivos con fs

2.1 Leer archivos de forma asíncrona

El método readFile del módulo fs lee un archivo de forma asíncrona. Esto significa que la operación de lectura se ejecuta en segundo plano sin bloquear la ejecución del programa. Mientras el archivo e está leyendo, el resto del código puede seguir ejecutándose normalmente.

La forma correcta de leer el contenido de un archivo usando readFile es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
const fs = require('fs');

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

console.log('Este mensaje se mostrará primero');

También podemos usar fs/promises a través de ES Module para facilitar el uso con async/await. Para habilitarlo, agrega la extensión .mjs o la clave "type": "module" en un archivo package.json. Ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
import { readFile } from 'fs/promises';

async function leerArchivo() {
  try {
    const contenido = await readFile('archivo.txt', 'utf8');
    console.log(contenido);
  } catch(error) {
    console.error('Error:', error);
  }
}

leerArchivo();
console.log('Este mensaje se mostrará primero');

2.2 Leer archivos de forma síncrona

Además del readFile, el módulo fs también ofrece el método readFileSync, que realiza la lectura de archivos de forma síncrona. A diferencia del método anterior, este bloquea la ejecución del programa hasta que el archivo ha sido leído completamente.

Por ejemplo, un caso sería leer un archivo de configuración antes de iniciar otros procesos:

1
2
3
4
5
6
7
8
const fs = require('fs');

const configData = fs.readFileSync('config.json', 'utf8');

const config = JSON.parse(configData);

console.log("Aplicación:", config.appName)
console.log("Puerto:", config.port)
Esta entrada está licenciada bajo CC BY 4.0 por el autor.