Riferimento rapido

Cheat Sheet Modulo fs di Node.js

Una guida rapida per il modulo fs di Node.js: lettura e scrittura asincrona e sincrona, monitoraggio file, metadati e cartelle.

· Pubblicato

Il modulo fs (File System) di Node.js fornisce API per interagire con il file system locale tramite Promise, callback o esecuzione sincrona.

API Basata su Promise (fs/promises)

const fs = require('fs/promises');
// import fs from 'node:fs/promises';

// Leggi il file come stringa UTF-8
const content = await fs.readFile('data.txt', 'utf8');

// Scrivi o sovrascrivi il contenuto del file
await fs.writeFile('output.txt', 'Hello World', 'utf8');

// Aggiungi testo in coda al file
await fs.appendFile('log.txt', 'New entry\n', 'utf8');

// Verifica esistenza e permessi di accesso
try {
  await fs.access('config.json');
} catch {
  console.log('Il file non esiste o non e accessibile');
}

API Sincrona

const fs = require('fs');

const data = fs.readFileSync('input.txt', 'utf8');
fs.writeFileSync('output.txt', data);
fs.appendFileSync('output.txt', '\nappended');

const exists = fs.existsSync('file.txt');

Metadati e Statistiche del File (fs.stat)

const stats = await fs.stat('file.txt');

stats.isFile();            // -> file standard (true / false)
stats.isDirectory();       // -> directory (true / false)
stats.isSymbolicLink();    // -> collegamento simbolico (true / false)
stats.size;                // Dimensione del file in byte
stats.mtime;               // Timestamp ultima modifica

Operazioni sulle Directory

// Elenca gli elementi nella directory
const files = await fs.readdir('src/');

// Creazione ricorsiva di directory
await fs.mkdir('build/assets/css', { recursive: true });

// Rimozione ricorsiva di directory
await fs.rm('dist/', { recursive: true, force: true });

Monitoraggio File System (fs.watch)

const fs = require('fs');

const watcher = fs.watch('src/', { recursive: true }, (eventType, filename) => {
  console.log(`Event: ${eventType} on ${filename}`);
});

// Interrompi il monitoraggio
watcher.close();

Descrittori di File (File Descriptors)

const fs = require('fs/promises');

// Apri in sola lettura
const filehandle = await fs.open('archive.bin', 'r');

// Alloca un buffer da 1024 byte
const buffer = Buffer.alloc(1024);

// Leggi byte nel buffer
const { bytesRead } = await filehandle.read(buffer, 0, 1024, 0);

await filehandle.close();

Riferimenti

Argomenti correlati