· 4 min read

Lire un fichier JSON de manière synchrone avec Node.js

Node.js est une plateforme logicielle qui permet d’exécuter du code JavaScript côté serveur. Un des avantages de Node.js est sa capacité à lire et écrire des fichiers sur le système de fichiers, une fonctionnalité qui n’est pas disponible dans le JavaScript côté client pour des raisons de sécurité. Dans ce guide, nous allons explorer comment lire un fichier JSON de manière synchrone en utilisant Node.js. Cela peut être utile dans diverses situations, par exemple lorsque vous avez besoin de charger des données de configuration lors du démarrage de votre application.

Comprendre le module fs de Node.js

Le module fs (système de fichiers) est un module intégré de Node.js qui fournit une API pour interagir avec le système de fichiers. Il comprend des méthodes pour lire, écrire, supprimer et manipuler des fichiers et des dossiers sur le système de fichiers.

Pour lire un fichier JSON de manière synchrone, nous utilisons la méthode fs.readFileSync(). Cette méthode bloque le fil d’exécution jusqu’à ce que la lecture du fichier soit terminée, ce qui signifie qu’aucun autre code ne peut s’exécuter pendant ce temps. C’est pourquoi il est généralement recommandé d’utiliser des opérations de lecture de fichiers asynchrones dans les applications Node.js. Cependant, dans certains cas, comme le chargement de données de configuration lors du démarrage d’une application, une lecture synchrone peut être appropriée.

Dans la section suivante, nous verrons comment utiliser fs.readFileSync() pour lire un fichier JSON.

Lire un fichier JSON avec fs.readFileSync

Pour lire un fichier JSON avec fs.readFileSync(), vous devez d’abord importer le module fs dans votre fichier JavaScript. Ensuite, vous pouvez utiliser fs.readFileSync() pour lire le contenu du fichier. Cette méthode retourne les données sous forme de tampon, que vous pouvez ensuite convertir en chaîne avec la méthode .toString(). Enfin, vous pouvez utiliser JSON.parse() pour convertir la chaîne JSON en un objet JavaScript.

Voici un exemple de code qui lit un fichier JSON de manière synchrone :

const fs = require('fs');

// Lire le fichier JSON de manière synchrone
let data = fs.readFileSync('monFichier.json');

// Convertir le tampon en chaîne
let jsonString = data.toString();

// Convertir la chaîne JSON en objet JavaScript
let obj = JSON.parse(jsonString);

console.log(obj);

Dans cet exemple, monFichier.json est le chemin vers votre fichier JSON. Si le fichier se trouve dans le même répertoire que votre script Node.js, vous pouvez simplement spécifier le nom du fichier. Sinon, vous devrez fournir le chemin relatif ou absolu vers le fichier.

Notez que fs.readFileSync() lancera une exception si une erreur se produit lors de la lecture du fichier, par exemple si le fichier n’existe pas. Vous devriez donc utiliser cette méthode à l’intérieur d’un bloc try/catch pour gérer correctement les erreurs.

Écrire dans un fichier JSON avec fs.writeFileSync

Pour écrire dans un fichier JSON avec fs.writeFileSync(), vous devez d’abord convertir votre objet JavaScript en une chaîne JSON avec JSON.stringify(). Ensuite, vous pouvez utiliser fs.writeFileSync() pour écrire cette chaîne dans un fichier.

Voici un exemple de code qui écrit dans un fichier JSON de manière synchrone :

const fs = require('fs');

// Créer un objet JavaScript
let obj = {
  nom: 'Dupont',
  prenom: 'Jean',
  age: 30
};

// Convertir l'objet en chaîne JSON
let jsonString = JSON.stringify(obj);

// Écrire la chaîne JSON dans un fichier
fs.writeFileSync('monFichier.json', jsonString);

Dans cet exemple, monFichier.json est le chemin vers votre fichier JSON. Si vous voulez créer le fichier dans le même répertoire que votre script Node.js, vous pouvez simplement spécifier le nom du fichier. Sinon, vous devrez fournir le chemin relatif ou absolu vers le fichier.

Comme pour fs.readFileSync(), fs.writeFileSync() lancera une exception si une erreur se produit lors de l’écriture du fichier. Vous devriez donc utiliser cette méthode à l’intérieur d’un bloc try/catch pour gérer correctement les erreurs.

Meilleures pratiques et erreurs courantes

Lors de l’utilisation des méthodes fs.readFileSync() et fs.writeFileSync(), il y a quelques meilleures pratiques et erreurs courantes à garder à l’esprit.

  1. Gestion des erreurs : Comme mentionné précédemment, ces méthodes lanceront une exception si une erreur se produit. Il est donc important de les utiliser à l’intérieur d’un bloc try/catch pour gérer correctement les erreurs.

  2. Chemins de fichiers : Assurez-vous de fournir le chemin correct vers votre fichier. Si le fichier n’est pas dans le même répertoire que votre script Node.js, vous devrez fournir un chemin relatif ou absolu.

  3. Performance : Les opérations de lecture et d’écriture de fichiers sont coûteuses en termes de performance. Si vous lisez ou écrivez un fichier plusieurs fois, il peut être plus efficace de lire ou d’écrire tout le fichier en une seule fois plutôt que de le faire en plusieurs petites opérations.

  4. Sécurité : Soyez conscient des problèmes de sécurité potentiels lors de la lecture et de l’écriture de fichiers. Par exemple, si vous lisez un fichier à partir d’un chemin fourni par l’utilisateur, assurez-vous de valider ce chemin pour éviter les attaques par chemin de répertoire.

En gardant ces points à l’esprit, vous pouvez utiliser efficacement fs.readFileSync() et fs.writeFileSync() pour lire et écrire des fichiers JSON avec Node.js.

    Share:
    Back to Blog