Skip to content

Écrire des fichiers avec Node.js

Écrire un fichier

La façon la plus simple d'écrire dans des fichiers dans Node.js est d'utiliser l'API fs.writeFile().

javascript
const fs = require('node:fs')
const content = 'Some content!'

fs.writeFile('/Users/joe/test.txt', content, err => {
  if (err) {
    console.error(err)
  } else {
    // fichier écrit avec succès
  }
})

Écrire un fichier de manière synchrone

Alternativement, vous pouvez utiliser la version synchrone fs.writeFileSync :

javascript
const fs = require('node:fs')
const content = 'Some content!'

try {
  fs.writeFileSync('/Users/joe/test.txt', content)
} catch (err) {
  console.error(err)
}

Vous pouvez aussi utiliser la méthode fsPromises.writeFile() basée sur les promises, offerte par le module fs/promises :

javascript
const fs = require('node:fs/promises')
async function example() {
  try {
    const content = 'Some content!'
    await fs.writeFile('/Users/joe/test.txt', content)
  } catch (err) {
    console.log(err)
  }
}

example()

Par défaut, cette API remplacera le contenu du fichier s'il existe déjà.

Vous pouvez modifier le comportement par défaut en spécifiant un drapeau :

javascript
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => [])

Les drapeaux que vous utiliserez probablement sont :

DrapeauDescriptionLe fichier est créé s'il n'existe pas
r+Ce drapeau ouvre le fichier en lecture et en écriture
w+Ce drapeau ouvre le fichier en lecture et en écriture et positionne le flux au début du fichier
aCe drapeau ouvre le fichier en écriture et positionne le flux à la fin du fichier
a+Ce flux ouvre le fichier en lecture et en écriture et positionne le flux à la fin du fichier

Vous pouvez trouver plus d'informations sur les drapeaux dans la documentation fs.

Ajouter du contenu à un fichier

Ajouter du contenu à des fichiers est pratique lorsque vous ne voulez pas écraser un fichier avec un nouveau contenu, mais plutôt y ajouter du contenu.

Exemples

Une méthode pratique pour ajouter du contenu à la fin d'un fichier est fs.appendFile() (et son équivalent fs.appendFileSync()):

javascript
const fs = require('node:fs')
const content = 'Some content!'

fs.appendFile('file_log', content, err => {
  if (err) {
    console.error(err)
  } else {
    // done!
  }
})

Exemple avec les Promises

Voici un exemple de fsPromises.appendFile() :

javascript
const fs = require('node:fs/promises')
async function example() {
  try {
    const content = 'Some content!'
    await fs.appendFile('/Users/joe/test.txt', content)
  } catch (err) {
    console.log(err)
  }
}

example()