Travailler avec le système de fichiers en JavaScript : guide complet sur 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

Travailler avec le système de fichiers en JavaScript (Node.js)



Dans le développement web moderne, JavaScript a depuis longtemps dépassé les limites du navigateur. Grâce à la plateforme Node.js, les développeurs ont la possibilité de créer des applications serveur, de travailler avec des bases de données et, bien sûr, d'interagir avec le système de fichiers. Savoir lire, écrire, supprimer et déplacer des fichiers est l'une des compétences clés de tout développeur backend. Dans cet article, nous allons détailler comment travailler avec le système de fichiers en JavaScript sur Node.js, en utilisant le module intégré fs et sa version moderne basée sur les promesses fs/promises.



Ce contenu sera utile aussi bien aux débutants qui commencent tout juste à apprendre Node.js qu'aux développeurs expérimentés souhaitant systématiser leurs connaissances. Tous les exemples de code peuvent être exécutés dans votre environnement de développement.



Importation du module fs et méthodes principales



Pour travailler avec le système de fichiers dans Node.js, on utilise le module intégré fs (file system). Il n'est pas nécessaire de l'installer séparément — il est disponible immédiatement après l'installation de Node.js. Il s'importe de manière standard :



const fs = require('fs');


Cependant, en JavaScript moderne (ES6+) et dans Node.js (à partir de la version 14), il est recommandé d'utiliser la syntaxe ES modules et de travailler avec la version basée sur les promesses fs/promises. Cela permet d'éviter le "callback hell" et d'écrire un code asynchrone plus propre avec async/await.



import * as fs from 'fs/promises';// ouconst fs = require('fs/promises');


Les principales méthodes du module fs se divisent en trois catégories :



  • Synchrone — bloque le flux d'exécution (par exemple, fs.readFileSync()). Utilisé rarement, principalement dans les scripts d'initialisation.
  • Asynchrone avec callbacks — le style traditionnel de Node.js (par exemple, fs.readFile()).
  • Asynchrone basé sur les promesses — le style moderne (fs/promises). Recommandé pour la plupart des tâches.


Lecture de fichiers dans Node.js



Commençons par l'action la plus courante — la lecture du contenu d'un fichier. Examinons deux approches : l'utilisation de callbacks et l'utilisation de promesses.



Lecture via callbacks (méthode traditionnelle)



const fs = require('fs');

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


Notez que nous passons l'encodage 'utf8' comme deuxième argument. Si vous ne le spécifiez pas, les données seront retournées sous forme de buffer binaire (Buffer).



Lecture via promesses (méthode recommandée)



import { readFile } from 'fs/promises';

async function readExample() { try { const data = await readFile('example.txt', 'utf8'); console.log('Contenu du fichier :', data); } catch (err) { console.error('Erreur de lecture du fichier :', err); }}

readExample();


Le code est devenu plus propre et plus compréhensible. Les erreurs sont gérées via try/catch, ce qui est familier pour les développeurs connaissant d'autres langages.



Écriture de données dans un fichier



L'écriture dans un fichier est la deuxième opération la plus importante. Dans Node.js, il existe deux méthodes principales : writeFile (remplace le fichier) et appendFile (ajoute des données à la fin du fichier).



Remplacement d'un fichier



import { writeFile } from 'fs/promises';

async function writeExample() { try { await writeFile('output.txt', 'Bonjour, le monde !', 'utf8'); console.log('Fichier écrit avec succès'); } catch (err) { console.error('Erreur d\'écriture :', err); }}

writeExample();


Si le fichier output.txt n'existe pas, il sera créé automatiquement. S'il existe, son contenu sera complètement remplacé.

Blogs

Book Recommendations