Travail avec le système de fichiers en JavaScript : guide pratique pour Node.js

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : Pourquoi savoir travailler avec les fichiers en JavaScript ?

\n\n

Quand on parle de JavaScript, la plupart des gens pensent immédiatement au navigateur et aux interfaces interactives. Cependant, avec l'apparition de la plateforme Node.js, JavaScript a largement dépassé les limites des pages web. Aujourd'hui, c'est un langage à part entière pour le développement serveur, l'automatisation et les utilitaires. Et l'une des tâches clés rencontrées par chaque développeur est le travail avec le système de fichiers.

\n\n

Savoir lire, écrire, déplacer et supprimer des fichiers est une base sans laquelle aucun projet sérieux ne peut être imaginé. Qu'il s'agisse d'un logger, d'un fichier de configuration, du téléchargement d'images ou de l'analyse de données, l'accès au système de fichiers est partout nécessaire.

\n\n

Dans cet article, nous allons examiner des exemples pratiques de travail avec le système de fichiers dans Node.js. Vous apprendrez à utiliser le module intégré fs, quelles méthodes existent et comment éviter les erreurs typiques. Tout le code peut être exécuté et testé immédiatement.

\n\n

Méthodes principales du module fs

\n\n

Le module fs (File System) fait partie de l'installation standard de Node.js. Il n'est pas nécessaire de l'installer séparément. Pour commencer, il suffit de l'importer au début du fichier :

\n\n
const fs = require('fs');\nconst fsPromises = require('fs').promises; // pour travailler avec les promesses
\n\n

Toutes les méthodes du module fs existent en trois variantes :

\n\n
    \n
  • Synchrones — bloquent l'exécution du code jusqu'à la fin de l'opération. Ont généralement le suffixe Sync.
  • \n
  • Asynchrones avec callbacks — le style classique de Node.js.
  • \n
  • Asynchrones basées sur les promesses — l'approche moderne via fs.promises.
  • \n
\n\n

Dans les projets modernes, il est recommandé d'utiliser les promesses et async/await. Cela rend le code plus propre et plus compréhensible.

\n\n

Lecture de fichiers

\n\n

Le scénario le plus courant est de lire le contenu d'un fichier. Prenons l'exemple d'un fichier texte data.txt :

\n\n
const fs = require('fs').promises;\n\nasync function readFileExample() {\n    try {\n        const data = await fs.readFile('data.txt', 'utf8');\n        console.log('Contenu du fichier :');\n        console.log(data);\n    } catch (err) {\n        console.error('Erreur de lecture du fichier :', err.message);\n    }\n}\n\nreadFileExample();
\n\n

Le deuxième paramètre 'utf8' spécifie l'encodage. Si vous l'omettez, vous obtiendrez un tampon brut (Buffer). Pour les fichiers texte, spécifiez toujours l'encodage.

\n\n

Écriture dans un fichier

\n\n

L'écriture de données dans un fichier peut se faire de deux manières : réécriture complète ou ajout à la fin.

\n\n

Réécriture du fichier :

\n
const fs = require('fs').promises;\n\nasync function writeFileExample() {\n    try {\n        await fs.writeFile('output.txt', 'Bonjour, système de fichiers !');\n        console.log('Fichier écrit avec succès');\n    } catch (err) {\n        console.error('Erreur d\'écriture :', err.message);\n    }\n}\n\nwriteFileExample();
\n\n

Ajout à la fin du fichier :

\n
const fs = require('fs').promises;\n\nasync function appendFileExample() {\n    try {\n        await fs.appendFile('log.txt', `Nouvelle entrée : ${new Date().toISOString()}\\n`);\n        console.log('Données ajoutées');\n    } catch (err) {\n        console.error('Erreur d\'ajout :', err.message);\n    }\n}\n\nappendFileExample();
\n\n

La méthode appendFile est idéale pour la tenue de logs ou l'accumulation de données.

\n\n

Gestion des répertoires et fichiers

\n\n

Le travail avec le système de fichiers ne se limite pas à la lecture et à l'écriture. Il est souvent nécessaire de créer des dossiers, de vérifier l'existence de fichiers ou de les supprimer.

\n\n

Création et suppression de répertoires

\n\n
const fs = require('fs').promises;\n\nasync function manageDirectories() {\n    try {\n        // Création d'un répertoire (s'il n'existe pas)\n        await fs.mk                

Blogs

Book Recommendations