Gérer les fichiers avec Node.js : Lire, écrire et manipuler des fichiers

Par adelaa, 20 février, 2025
Node.js

Introduction

Dans le développement backend, il est souvent nécessaire de lire, modifier ou enregistrer des fichiers. Que ce soit pour stocker des logs, gérer des fichiers de configuration ou manipuler des données sans base de données, Node.js offre des outils puissants pour interagir avec le système de fichiers.

Dans cet article, nous allons voir comment utiliser le module fs (File System) de Node.js pour lire, écrire, modifier et supprimer des fichiers.

1. Pourquoi manipuler des fichiers avec Node.js ?

Contrairement aux bases de données, les fichiers sont une solution simple et rapide pour stocker des données temporairement ou enregistrer des logs d’application.

Les cas d’usage courants sont :
Lire et écrire des fichiers de configuration (ex. fichiers .json ou .txt).
Enregistrer des logs pour suivre l’activité d’un serveur.
Gérer des fichiers envoyés par les utilisateurs (ex. images, documents).
Stocker temporairement des données sans base de données.

2. Utilisation du module fs de Node.js

2.1 Lire un fichier

Le module fs de Node.js permet de lire un fichier de manière synchronisée ou asynchrone.

Exemple : Lecture d’un fichier message.txt

1️⃣ Créer un fichier message.txt avec du texte

Bonjour, ceci est un fichier texte !

2️⃣ Lire le fichier avec Node.js

const fs = require('fs');

fs.readFile('message.txt', 'utf8', (err, data) => {
    if (err) {
        console.error('Erreur lors de la lecture du fichier', err);
        return;
    }
    console.log('Contenu du fichier :', data);
});

fs.readFile() lit le fichier de façon asynchrone.
Si une erreur survient, elle est affichée dans la console.
Le contenu du fichier est affiché après lecture.

2.2 Écrire dans un fichier

On peut créer ou modifier un fichier en utilisant fs.writeFile().

Exemple : Écrire dans nouveau_fichier.txt

fs.writeFile('nouveau_fichier.txt', 'Ceci est un nouveau fichier.', (err) => {
    if (err) {
        console.error('Erreur lors de l\'écriture du fichier', err);
        return;
    }
    console.log('Fichier créé avec succès !');
});

Si le fichier existe, il est remplacé.
Si le fichier n’existe pas, il est créé automatiquement.

2.3 Ajouter du contenu à un fichier existant

Si on veut ajouter du texte sans écraser le fichier, on utilise fs.appendFile().

fs.appendFile('nouveau_fichier.txt', '\nAjout d’une nouvelle ligne.', (err) => {
    if (err) {
        console.error('Erreur lors de l’ajout de texte', err);
        return;
    }
    console.log('Texte ajouté avec succès !');
});

Le texte est ajouté à la fin du fichier.
appendFile() ne remplace pas l’ancien contenu.

2.4 Supprimer un fichier

Pour supprimer un fichier inutile, on utilise fs.unlink().

fs.unlink('nouveau_fichier.txt', (err) => {
    if (err) {
        console.error('Erreur lors de la suppression', err);
        return;
    }
    console.log('Fichier supprimé avec succès !');
});

Le fichier est supprimé définitivement.
Si le fichier n’existe pas, une erreur s’affiche.

3. Manipuler des dossiers avec Node.js

Créer un dossier

On peut créer un dossier avec fs.mkdir() :

fs.mkdir('mon_dossier', (err) => {
    if (err) {
        console.error('Erreur lors de la création du dossier', err);
        return;
    }
    console.log('Dossier créé avec succès !');
});

Lire le contenu d’un dossier

fs.readdir('.', (err, fichiers) => {
    if (err) {
        console.error('Erreur lors de la lecture du dossier', err);
        return;
    }
    console.log('Fichiers présents :', fichiers);
});

Le point '.' représente le dossier actuel.
Retourne la liste des fichiers et dossiers présents.

4. Bonnes pratiques pour manipuler les fichiers en Node.js

Toujours gérer les erreurs (if (err) { ... }).
Utiliser des chemins absolus pour éviter les conflits (__dirname + '/fichier.txt').
Ne pas stocker trop de données dans un fichier texte, préférer une base de données.
Sécuriser l’accès aux fichiers sensibles (chmod, accès restreints).

5. Sources

  1. Documentation officielle de Node.js - Module fs : https://nodejs.org/api/fs.html (page consultée le 20 février 2025).
    Voici la citation de la source selon les normes méthodologiques :
  2. W3Schools - Node.js File System : https://www.w3schools.com/nodejs/nodejs_filesystem.asp (page consultée le 20 février 2025).

Étiquettes

Commentaires2

malcheikhali

il y a 1 mois 1 semaine

C'est un article très intéressant. Je ne savais pas qu'il était aussi simple de faire des manipulations de fichiers. Je voulais savoir si la fonctions fs est déjà incluse dans Node.js, ou bien s'il faut l'importer ? De plus, sais-tu si cette fonction fonctionne dans tous les systèmes d'exploitation ?

yayad

il y a 1 mois

L’article est clair, bien structuré et pédagogique, avec des exemples pratiques et des bonnes pratiques essentielles. Il pourrait être enrichi en expliquant l’impact des méthodes synchrones sur la performance. Très utile pour les débutants en Node.js !