Scrittura di file con Node.js
Codegrind Team•Nov 22 2023
Il modo più semplice per scrivere su file in Node.js è utilizzare l’API fs.writeFile()
.
const fs = require("node:fs");
const content = "Un po' di contenuto!";
fs.writeFile("/Users/joe/test.txt", content, (err) => {
if (err) {
console.error(err);
}
// File scritto con successo
});
Scrittura sincrona di un file
In alternativa, puoi utilizzare la versione sincrona fs.writeFileSync()
:
const fs = require("node:fs");
const content = "Un po' di contenuto!";
try {
fs.writeFileSync("/Users/joe/test.txt", content);
// File scritto con successo
} catch (err) {
console.error(err);
}
Puoi anche utilizzare il metodo basato su promesse fsPromises.writeFile()
offerto dal modulo fs/promises
:
const fs = require("node:fs/promises");
async function esempio() {
try {
const content = "Un po' di contenuto!";
await fs.writeFile("/Users/joe/test.txt", content);
} catch (err) {
console.log(err);
}
}
esempio();
Per impostazione predefinita, questa API sostituirà i contenuti del file se esiste già.
Puoi modificare l’impostazione predefinita specificando una flag:
fs.writeFile("/Users/joe/test.txt", content, { flag: "a+" }, (err) => {});
Le flag che userai probabilmente sono
Flag | Descrizione | File Creato se Non Esiste |
---|---|---|
r+ | Questa flag apre il file in lettura e scrittura. | ❌ |
w+ | Questa flag apre il file in lettura e scrittura e posiziona lo stream all’inizio del file. | ✅ |
a | Questa flag apre il file in scrittura e posiziona lo stream alla fine del file. | ✅ |
a+ | Questa flag apre il file in lettura e scrittura e posiziona lo stream alla fine del file. | ✅ |
Aggiunta di contenuto a un file
Aggiungere contenuto a file è utile quando non si desidera sovrascrivere un file con un nuovo contenuto, ma piuttosto aggiungerlo.
Esempi
Un metodo utile per aggiungere contenuto alla fine di un file è fs.appendFile()
(e il suo corrispettivo sincrono fs.appendFileSync()
):
const fs = require("node:fs");
const content = "Un po' di contenuto!";
fs.appendFile("file.log", content, (err) => {
if (err) {
console.error(err);
}
// Fatto!
});
Esempio con Promises
Ecco un esempio di fsPromises.appendFile()
:
const fs = require("node:fs/promises");
async function esempio() {
try {
const content = "Un po' di contenuto!";
await fs.appendFile("/Users/joe/test.txt", content);
} catch (err) {
console.log(err);
}
}
esempio();