En aquest tema, explorarem el mòdul del sistema de fitxers (File System Module) de Node.js, que permet interactuar amb el sistema de fitxers de manera senzilla i eficient. Aprendrem a llegir, escriure, actualitzar i eliminar fitxers, així com a treballar amb directoris.

Continguts

  1. Introducció al Mòdul del Sistema de Fitxers
  2. Llegir Fitxers
  3. Escriure Fitxers
  4. Actualitzar Fitxers
  5. Eliminar Fitxers
  6. Treballar amb Directoris
  7. Exercicis Pràctics

  1. Introducció al Mòdul del Sistema de Fitxers

El mòdul fs de Node.js proporciona una API per interactuar amb el sistema de fitxers. Aquest mòdul inclou mètodes per llegir, escriure, actualitzar i eliminar fitxers, així com per treballar amb directoris.

Per utilitzar el mòdul fs, primer cal importar-lo:

const fs = require('fs');

  1. Llegir Fitxers

Llegir Fitxers de Forma Síncrona

Per llegir un fitxer de manera síncrona, utilitzem el mètode fs.readFileSync(). Aquest mètode bloqueja l'execució del programa fins que la lectura del fitxer es completa.

const fs = require('fs');

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

Llegir Fitxers de Forma Asíncrona

Per llegir un fitxer de manera asíncrona, utilitzem el mètode fs.readFile(). Aquest mètode no bloqueja l'execució del programa i utilitza una funció de callback per gestionar el resultat.

const fs = require('fs');

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

  1. Escriure Fitxers

Escriure Fitxers de Forma Síncrona

Per escriure en un fitxer de manera síncrona, utilitzem el mètode fs.writeFileSync(). Aquest mètode bloqueja l'execució del programa fins que l'escriptura del fitxer es completa.

const fs = require('fs');

try {
    fs.writeFileSync('path/to/file.txt', 'Hello, world!', 'utf8');
    console.log('Fitxer escrit correctament');
} catch (err) {
    console.error(err);
}

Escriure Fitxers de Forma Asíncrona

Per escriure en un fitxer de manera asíncrona, utilitzem el mètode fs.writeFile(). Aquest mètode no bloqueja l'execució del programa i utilitza una funció de callback per gestionar el resultat.

const fs = require('fs');

fs.writeFile('path/to/file.txt', 'Hello, world!', 'utf8', (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Fitxer escrit correctament');
});

  1. Actualitzar Fitxers

Afegir Contingut a un Fitxer de Forma Síncrona

Per afegir contingut a un fitxer de manera síncrona, utilitzem el mètode fs.appendFileSync().

const fs = require('fs');

try {
    fs.appendFileSync('path/to/file.txt', '\nAfegint més contingut', 'utf8');
    console.log('Contingut afegit correctament');
} catch (err) {
    console.error(err);
}

Afegir Contingut a un Fitxer de Forma Asíncrona

Per afegir contingut a un fitxer de manera asíncrona, utilitzem el mètode fs.appendFile().

const fs = require('fs');

fs.appendFile('path/to/file.txt', '\nAfegint més contingut', 'utf8', (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Contingut afegit correctament');
});

  1. Eliminar Fitxers

Eliminar Fitxers de Forma Síncrona

Per eliminar un fitxer de manera síncrona, utilitzem el mètode fs.unlinkSync().

const fs = require('fs');

try {
    fs.unlinkSync('path/to/file.txt');
    console.log('Fitxer eliminat correctament');
} catch (err) {
    console.error(err);
}

Eliminar Fitxers de Forma Asíncrona

Per eliminar un fitxer de manera asíncrona, utilitzem el mètode fs.unlink().

const fs = require('fs');

fs.unlink('path/to/file.txt', (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Fitxer eliminat correctament');
});

  1. Treballar amb Directoris

Crear un Directori

Per crear un directori, utilitzem el mètode fs.mkdir().

const fs = require('fs');

fs.mkdir('path/to/directory', { recursive: true }, (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Directori creat correctament');
});

Llegir el Contingut d'un Directori

Per llegir el contingut d'un directori, utilitzem el mètode fs.readdir().

const fs = require('fs');

fs.readdir('path/to/directory', (err, files) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Contingut del directori:', files);
});

Eliminar un Directori

Per eliminar un directori, utilitzem el mètode fs.rmdir().

const fs = require('fs');

fs.rmdir('path/to/directory', { recursive: true }, (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Directori eliminat correctament');
});

  1. Exercicis Pràctics

Exercici 1: Llegir i Escriure Fitxers

  1. Crea un fitxer anomenat example.txt i escriu-hi el text "Hola, Node.js!".
  2. Llegeix el contingut del fitxer example.txt i mostra'l per consola.

Solució

const fs = require('fs');

// Escriure en el fitxer
fs.writeFile('example.txt', 'Hola, Node.js!', 'utf8', (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Fitxer escrit correctament');

    // Llegir el fitxer
    fs.readFile('example.txt', 'utf8', (err, data) => {
        if (err) {
            console.error(err);
            return;
        }
        console.log('Contingut del fitxer:', data);
    });
});

Exercici 2: Treballar amb Directoris

  1. Crea un directori anomenat testDir.
  2. Crea un fitxer anomenat testFile.txt dins del directori testDir amb el text "Aquest és un fitxer de prova".
  3. Llegeix el contingut del directori testDir i mostra'l per consola.
  4. Elimina el fitxer testFile.txt i el directori testDir.

Solució

const fs = require('fs');

// Crear el directori
fs.mkdir('testDir', { recursive: true }, (err) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log('Directori creat correctament');

    // Escriure en el fitxer dins del directori
    fs.writeFile('testDir/testFile.txt', 'Aquest és un fitxer de prova', 'utf8', (err) => {
        if (err) {
            console.error(err);
            return;
        }
        console.log('Fitxer escrit correctament');

        // Llegir el contingut del directori
        fs.readdir('testDir', (err, files) => {
            if (err) {
                console.error(err);
                return;
            }
            console.log('Contingut del directori:', files);

            // Eliminar el fitxer
            fs.unlink('testDir/testFile.txt', (err) => {
                if (err) {
                    console.error(err);
                    return;
                }
                console.log('Fitxer eliminat correctament');

                // Eliminar el directori
                fs.rmdir('testDir', { recursive: true }, (err) => {
                    if (err) {
                        console.error(err);
                        return;
                    }
                    console.log('Directori eliminat correctament');
                });
            });
        });
    });
});

Conclusió

En aquest tema, hem après a utilitzar el mòdul del sistema de fitxers de Node.js per llegir, escriure, actualitzar i eliminar fitxers, així com per treballar amb directoris. Aquests coneixements són fonamentals per a qualsevol desenvolupador que treballi amb Node.js, ja que permeten gestionar fitxers i directoris de manera eficient. En el proper tema, explorarem com crear un servidor HTTP simple amb Node.js.

Curs de Node.js

Mòdul 1: Introducció a Node.js

Mòdul 2: Conceptes Bàsics

Mòdul 3: Sistema de Fitxers i I/O

Mòdul 4: HTTP i Servidors Web

Mòdul 5: NPM i Gestió de Paquets

Mòdul 6: Framework Express.js

Mòdul 7: Bases de Dades i ORMs

Mòdul 8: Autenticació i Autorització

Mòdul 9: Proves i Depuració

Mòdul 10: Temes Avançats

Mòdul 11: Desplegament i DevOps

Mòdul 12: Projectes del Món Real

© Copyright 2024. Tots els drets reservats