📢 Nuovo Corso Laravel API disponibile!

Scrittura di file con Node.js

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

FlagDescrizioneFile 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.
aQuesta 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();