Node.js pour les débutants: les bases de l'utilisation des fichiers

Aujourd'hui, nous allons parler de la façon de travailler avec le système de fichiers à l'aide de Node.js, considérer les opérations de base effectuées avec les fichiers. Ces opérations sont les suivantes:

  • Création de fichiers
  • Lire le fichier
  • Écriture de données dans un fichier
  • Suppression de fichiers
  • Renommer le fichier

La nécessité d'effectuer de telles opérations se pose dans diverses situations.



Module Fs


Node.js possède un module standard, fs (abréviation de File System), qui donne aux développeurs des outils pour travailler avec le système de fichiers. Vous pouvez l'importer dans le projet comme suit:

 var fs = require('fs'); 

Les méthodes de ce module sont présentées sous des formes synchrones et asynchrones. Les fonctions de rappel passées aux méthodes asynchrones acceptent un objet d'erreur comme premier paramètre et les données renvoyées lorsque l'opération a réussi comme deuxième paramètre. Prenons un exemple:

 function fileHandler(){   fs.readFile('textFile.txt', 'utf8', (err, data) => {       if(err) throw err;       console.log(data);   }); } 

La méthode .readFile() , dont nous parlerons plus en détail, est destinée à la lecture de fichiers. Dans cet exemple, la fonction de rappel a deux paramètres - err et data . Les erreurs qui peuvent survenir lors de la tentative de lecture d'un fichier tombent dans le premier paramètre, les données obtenues après une opération réussie sont dans le deuxième paramètre. Notez que .readFile() est une méthode asynchrone du module fs . Sa version synchrone est appelée .readFileSync() . Une approche similaire est utilisée pour nommer d'autres méthodes de module.

Créer un nouveau fichier


Commençons par un exemple:

 function fileHandler(){   fs.open('testFile.txt', 'w', (err) => {       if(err) throw err;       console.log('File created');   });  } 

Ici, la méthode fs.open() est utilisée pour créer un nouveau fichier. Il prend un nom de fichier comme premier argument. Son deuxième argument est un indicateur qui indique au système exactement ce que nous voulons faire avec le fichier. Dans ce cas, il s'agit du drapeau w (abréviation d'écriture), qui indique que nous voulons ouvrir le fichier en écriture. La méthode .open() peut accepter divers indicateurs. En voici quelques uns:

  1. r : ouvrir le fichier pour la lecture
  2. r+ : ouvrir un fichier pour la lecture et l'écriture
  3. rs : ouvrir un fichier pour la lecture en mode synchrone
  4. w : ouvrir le fichier pour l'écriture
  5. a : ouvrir le fichier pour écrire des données à la fin du fichier
  6. a+ : ouvrir le fichier pour lire et écrire des données à la fin du fichier

Maintenant, avant de passer à l'exemple suivant, nous allons modifier le fichier testFile.txt vient d'être créé à l'aide d'une sorte d'éditeur de texte. Ajoutez-y le texte suivant:

 This is a test file. We're learning about Node.js File System. The End. 

Écriture de données dans un fichier


Parlons de la façon d'ajouter quelque chose à un fichier:

 function fileHandler(){   fs.appendFile('testFile.txt', ' This line is beyond the end.', (err) => {       if(err) throw err;       console.log('Data has been added!');   }); } 

Ici, nous utilisons la méthode .appendFile() pour ajouter des données à la fin d'un fichier existant. Comme premier argument, cette méthode accepte le nom de fichier, comme deuxième - les données qui doivent être ajoutées à la fin du fichier. Le troisième argument est, comme d'habitude, une fonction de rappel.

Une fois le code ci-dessus exécuté avec succès, le contenu du fichier ressemblera à ceci:

 This is a test file. We're learning about Node.js File System. The End. This line is beyond the end. 

Il existe une autre façon d'écrire des données dans un fichier. Cela implique l'utilisation de la méthode .writeFile() . Cette méthode est très similaire à .appendFile() , mais elle a une différence importante. Le fait est qu'en utilisant la méthode .appendFile() , nous ajoutons de nouvelles données au fichier après les données qui s'y .appendFile() déjà. Et lorsque vous utilisez la méthode .writeFile() , le contenu du fichier est remplacé par un nouveau. Essayons cette méthode:

 function fileHandler(){   fs.writeFile('testFile.txt', "I'm the replacement you've been looking for.", (err) => {       if(err) throw err;       console.log('Data has been replaced!');   }); } 

Après une opération réussie, le fichier contiendra le texte suivant:

 I'm the replacement you've been looking for. 

Comme vous pouvez le voir, le contenu du fichier est complètement remplacé par un nouveau.

Lire le fichier


Pour la lecture de fichiers, le module fs fournit la méthode .readFile() , un exemple d'utilisation dont nous avons déjà vu. Il prend le nom de fichier comme premier paramètre et l'encodage comme second. Le troisième paramètre est la fonction de rappel. Essayons d'imprimer le contenu du fichier testFile.txt sur la console en utilisant cette méthode:

 function fileHandler(){   fs.readFile('testFile.txt', 'utf8', (err, data) => {       if(err) throw err;       console.log('--------- [File Data] ---------');       console.log(data);       console.log('--------- [File Data] ---------');   }); } 

Voilà ce que nous obtenons.


Fichier de sortie de données vers la console

Parlons maintenant de renommer les fichiers.

Renommer le fichier


Pour renommer des fichiers, utilisez la méthode .rename() :

 function fileHandler(){   fs.rename('testFile.txt', 'newTestFile.txt', (err) => {       if(err) throw err;       console.log('File renamed successfully!');   }); } 

Le premier argument de la méthode est le nom d'un fichier existant, le second est le nouveau nom de ce fichier. Après un appel réussi à cette méthode, le fichier testFile.txt se transforme en newTestFile.txt .

Suppression de fichiers


Pour supprimer des fichiers, utilisez la méthode .unlink() :

 function fileHandler(){   fs.unlink('newTestFile.txt', (err) => {       if(err) throw err;       console.log('File deleted successfully!');   }); } 

Un appel réussi à cette méthode supprime le fichier newTestFile.txt .

Résumé


Dans cet article, nous avons examiné les bases de l'utilisation du système de fichiers dans Node.js. Si vous souhaitez maîtriser ce sujet plus en profondeur, jetez un œil à ce matériel du cycle de publication Node.js, lisez la documentation du module fs et essayez de tester tout ce que vous apprenez dans la pratique.

Chers lecteurs! Utilisez-vous le module fs standard ou autre pour travailler avec des fichiers dans Node.js?

Source: https://habr.com/ru/post/fr452566/


All Articles