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
- Introducció al Mòdul del Sistema de Fitxers
- Llegir Fitxers
- Escriure Fitxers
- Actualitzar Fitxers
- Eliminar Fitxers
- Treballar amb Directoris
- Exercicis Pràctics
- 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:
- 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);
});
- 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');
});
- 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');
});
- 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');
});
- 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');
});
- Exercicis Pràctics
Exercici 1: Llegir i Escriure Fitxers
- Crea un fitxer anomenat
example.txti escriu-hi el text "Hola, Node.js!". - Llegeix el contingut del fitxer
example.txti 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
- Crea un directori anomenat
testDir. - Crea un fitxer anomenat
testFile.txtdins del directoritestDiramb el text "Aquest és un fitxer de prova". - Llegeix el contingut del directori
testDiri mostra'l per consola. - Elimina el fitxer
testFile.txti el directoritestDir.
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
- Introducció a Express.js
- Configuració d'una Aplicació Express
- Middleware
- Routing en Express
- Gestió d'Errors
Mòdul 7: Bases de Dades i ORMs
- Introducció a les Bases de Dades
- Utilitzar MongoDB amb Mongoose
- Utilitzar Bases de Dades SQL amb Sequelize
- Operacions CRUD
Mòdul 8: Autenticació i Autorització
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb Mocha i Chai
- Proves d'Integració
- Depuració d'Aplicacions Node.js
Mòdul 10: Temes Avançats
Mòdul 11: Desplegament i DevOps
- Variables d'Entorn
- Utilitzar PM2 per a la Gestió de Processos
- Desplegar a Heroku
- Integració i Desplegament Continu
