En aquest tema, aprendrem com llegir i escriure fitxers utilitzant Node.js. Aquestes operacions són fonamentals per a moltes aplicacions, ja que permeten la manipulació de dades emmagatzemades en el sistema de fitxers.
Objectius
- Entendre com utilitzar el mòdul
fsper a operacions de lectura i escriptura de fitxers. - Aprendre a gestionar errors durant aquestes operacions.
- Realitzar operacions de lectura i escriptura de manera síncrona i asíncrona.
Mòdul fs
Node.js proporciona el mòdul fs (file system) per treballar amb el sistema de fitxers. Aquest mòdul inclou mètodes per llegir, escriure, actualitzar i eliminar fitxers.
Importar el mòdul fs
Llegir Fitxers
Lectura Asíncrona
La lectura asíncrona és preferible en la majoria dels casos perquè no bloqueja el fil principal de l'aplicació.
fs.readFile('path/al/fitxer.txt', 'utf8', (err, data) => {
if (err) {
console.error('Error llegint el fitxer:', err);
return;
}
console.log('Contingut del fitxer:', data);
});Explicació del Codi
fs.readFile: Mètode per llegir fitxers de manera asíncrona.'path/al/fitxer.txt': Ruta del fitxer a llegir.'utf8': Codificació del fitxer.callback: Funció que s'executa després de la lectura del fitxer. Rep dos paràmetres:err(error) idata(contingut del fitxer).
Lectura Síncrona
La lectura síncrona bloqueja el fil principal fins que l'operació es completa. És útil en scripts petits o quan la lectura ha de ser immediata.
try {
const data = fs.readFileSync('path/al/fitxer.txt', 'utf8');
console.log('Contingut del fitxer:', data);
} catch (err) {
console.error('Error llegint el fitxer:', err);
}Explicació del Codi
fs.readFileSync: Mètode per llegir fitxers de manera síncrona.try...catch: Bloc per gestionar errors durant la lectura.
Escriure Fitxers
Escriptura Asíncrona
const contingut = 'Aquest és el contingut a escriure en el fitxer.';
fs.writeFile('path/al/fitxer.txt', contingut, 'utf8', (err) => {
if (err) {
console.error('Error escrivint el fitxer:', err);
return;
}
console.log('Fitxer escrit correctament.');
});Explicació del Codi
fs.writeFile: Mètode per escriure fitxers de manera asíncrona.'path/al/fitxer.txt': Ruta del fitxer a escriure.contingut: Contingut a escriure en el fitxer.'utf8': Codificació del fitxer.callback: Funció que s'executa després de l'escriptura del fitxer. Rep un paràmetreerr(error).
Escriptura Síncrona
const contingut = 'Aquest és el contingut a escriure en el fitxer.';
try {
fs.writeFileSync('path/al/fitxer.txt', contingut, 'utf8');
console.log('Fitxer escrit correctament.');
} catch (err) {
console.error('Error escrivint el fitxer:', err);
}Explicació del Codi
fs.writeFileSync: Mètode per escriure fitxers de manera síncrona.try...catch: Bloc per gestionar errors durant l'escriptura.
Exercicis Pràctics
Exercici 1: Llegir un Fitxer
- Crea un fitxer anomenat
exemple.txtamb el contingut següent:Hola, món! - Escriu un programa en Node.js que llegeixi el contingut de
exemple.txti el mostri per consola.
Solució
const fs = require('fs');
fs.readFile('exemple.txt', 'utf8', (err, data) => {
if (err) {
console.error('Error llegint el fitxer:', err);
return;
}
console.log('Contingut del fitxer:', data);
});Exercici 2: Escriure en un Fitxer
- Escriu un programa en Node.js que escrigui el text "Node.js és genial!" en un fitxer anomenat
sortida.txt.
Solució
const fs = require('fs');
const contingut = 'Node.js és genial!';
fs.writeFile('sortida.txt', contingut, 'utf8', (err) => {
if (err) {
console.error('Error escrivint el fitxer:', err);
return;
}
console.log('Fitxer escrit correctament.');
});Resum
En aquesta secció, hem après com llegir i escriure fitxers utilitzant el mòdul fs de Node.js. Hem vist com realitzar aquestes operacions de manera síncrona i asíncrona, i hem practicat amb alguns exercicis per reforçar els conceptes apresos. Ara estem preparats per avançar al següent tema, on explorarem com treballar amb streams en 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
