Passer au contenu du pied de page
AIDE NODE

fs extra npm (Comment ça marche pour les développeurs)

Node.js est un environnement d'exécution JavaScript robuste qui a transformé la programmation côté serveur en fournissant un environnement de développement d'applications efficace et évolutif. Among the many Node.js packages available to developers, fs-extra and IronPDF stand out for their sophisticated file handling and PDF creation capabilities.

fs-extra est une version améliorée du module natif fs de Node. Il offre une API plus conviviale et des méthodes supplémentaires pour les opérations sur les fichiers comme la copie, le déplacement et la suppression. La programmation asynchrone est facilitée par la prise en charge des promesses, assurant une gestion fluide du système de fichiers et rationalisant le traitement des fichiers JSON.

En revanche, IronPDF est une bibliothèque PDF puissante qui permet aux programmeurs de générer, modifier et extraire du contenu à partir de fichiers PDF. It is useful for creating PDF documents from HTML or unformatted text, combining several PDFs, and adding headers, footers, watermarks, and other customizations to PDFs. Cela en fait un outil précieux pour créer des factures, des rapports et d'autres documents à la volée.

By integrating fs-extra and IronPDF, developers can create complex file management systems and produce professional-quality PDFs within their Node.js applications. Cette combinaison garantit que les programmes peuvent gérer efficacement des tâches complexes de traitement de fichiers et de documents tout en augmentant la productivité.

Qu'est-ce que fs-extra npm ?

Le package fs-extra est un utilitaire flexible de Node.js qui étend le module intégré fs (système de fichiers) en fournissant plus de fonctionnalités pour simplifier les opérations courantes sur les fichiers. Il offre des fonctions comme fs.copy, fs.move et fs.remove pour faciliter les tâches telles que la copie, le déplacement et la suppression de fichiers et de répertoires. De plus, fs-extra est livré avec des outils pour lire et écrire des fichiers JSON (fs.readJson, fs.writeJson), vérifier l'existence de répertoires ou de fichiers (fs.ensureDir, fs.ensureFile) et effectuer d'autres opérations utiles. Il prend en charge les promesses, permettant l'utilisation de la syntaxe async/await pour gérer plus confortablement la programmation asynchrone. Toutes les méthodes fs retournent des promesses, et fs-extra inclut également des méthodes synchrones.

fs extra npm (Comment Ça Fonctionne Pour les Développeurs) : Figure 1 - Node.js : fs-extra

Caractéristiques de fs-extra

En développant les fonctionnalités du module fs natif, fs-extra est un module de système de fichiers amélioré pour Node.js. C'est un choix populaire pour les développeurs, offrant une gamme de techniques puissantes et pratiques pour gérer les fichiers et les répertoires. Comparé au module fs d'origine, fs-extra offre les fonctionnalités suivantes, ainsi qu'un support de promesses ajouté aux méthodes fs standard :

Opérations de Fichiers Améliorées

  • Copier : fs.copy(src, dest) : Copie des répertoires et des fichiers, y compris le contenu imbriqué, de la source à la destination.
  • Déplacer : fs.move(src, dest) : Transfère des dossiers et des fichiers, offrant une option pour les renommer.
  • Supprimer : fs.remove(path) : Supprime récursivement des dossiers et des fichiers.

Opérations de Répertoire

  • Assurer le Répertoire : fs.ensureDir(path) : Vérifie l'existence d'un répertoire ; sinon, crée le répertoire.
  • Vider le Répertoire : fs.emptyDir(path) : Supprime le contenu d'un répertoire mais laisse ce dernier intact.
  • Assurer le Fichier : fs.ensureFile(path) : Vérifie l'existence d'un fichier ; sinon, crée le fichier.

Gestion des JSON

  • Lire JSON : fs.readJson(path) : Lit un fichier JSON et analyse son contenu.
  • Écrire JSON : fs.writeJson(path, data) : Écrit un objet JavaScript dans un fichier au format JSON.

Prise en Charge des Promesses

  • API Basée sur les Promesses : La plupart des méthodes retournent des Promesses, rendant l'écriture de code asynchrone avec la syntaxe async/await plus facile.

Compatibilité Rétroactive

  • Plein Support pour le Module fs : fs-extra inclut toutes les méthodes standard du module fs natif, ce qui en fait un remplacement immédiat avec une compatibilité rétroactive complète.

Méthodes de Commodité

  • Fichier de Sortie : fs.outputFile(path, data) : Crée des répertoires s'il n'en existe pas et écrit des données dans un fichier.
  • JSON de Sortie : fs.outputJson(path, data) : Crée des dossiers s'il n'en existe pas avant d'écrire un objet JavaScript en JSON dans un fichier.
  • Lire le Fichier : fs.readFile(path) : Lit le contenu d'un fichier.
  • Écrire dans le Fichier : fs.writeFile(path, data) : Écrit des données dans un fichier.
  • Existence du Chemin : fs.pathExists(path) : Vérifie si un fichier ou un répertoire existe au chemin donné.

Créer des Liens Symboliques

  • Assurer le Lien Symbolique : fs.ensureSymlink(srcpath, dstpath) : Vérifie si un lien symbolique est présent, et sinon, en crée un.

Création et Configuration d'un Projet Node.js avec fs-extra

Utilisez la bibliothèque fs-extra dans un projet Node.js en le créant et le configurant comme suit :

Configuration du projet

Commencez par créer un nouveau répertoire pour votre projet et utiliser npm pour lancer un tout nouveau projet Node.js (npm init -y). Cela remplit le cadre de base pour votre application.

Installer fs-extra

Utilisez npm pour installer la bibliothèque fs-extra :

npm install fs-extra
npm install fs-extra
SHELL

Utilisation de fs-extra

Pour illustrer l'utilisation de fs-extra, ouvrez index.js dans votre éditeur de texte préféré et ajoutez le code d'exemple suivant.

// Import the fs-extra module
const fs = require('fs-extra');

// Asynchronous function to perform various file operations
async function performFileOperations() {
  try {
    // Ensure a directory exists; create it if it doesn't
    await fs.ensureDir('exampleDir');

    // Create a file and write some data to it
    await fs.outputFile('exampleDir/exampleFile.txt', 'Hello, world!');

    // Read the file's content
    const data = await fs.readFile('exampleDir/exampleFile.txt', 'utf-8');
    console.log('File Content:', data);

    // Recursively copy the file
    await fs.copy('exampleDir/exampleFile.txt', 'exampleDir/copyOfExampleFile.txt');

    // Move the file to a new location
    await fs.move('exampleDir/copyOfExampleFile.txt', 'exampleDir/movedExampleFile.txt');

    // Remove the file
    await fs.remove('exampleDir/movedExampleFile.txt');

    // Ensure a file exists; create it if it doesn't
    await fs.ensureFile('exampleDir/newFile.txt');

    // Write JSON data to a file
    const jsonData = { name: 'John Doe', age: 30 };
    await fs.writeJson('exampleDir/data.json', jsonData);

    // Read JSON data from a file
    const jsonFileContent = await fs.readJson('exampleDir/data.json');
    console.log('JSON File Content:', jsonFileContent);
  } catch (err) {
    console.error('Error during file operations:', err);
  }
}

// Execute the file operations
performFileOperations();
// Import the fs-extra module
const fs = require('fs-extra');

// Asynchronous function to perform various file operations
async function performFileOperations() {
  try {
    // Ensure a directory exists; create it if it doesn't
    await fs.ensureDir('exampleDir');

    // Create a file and write some data to it
    await fs.outputFile('exampleDir/exampleFile.txt', 'Hello, world!');

    // Read the file's content
    const data = await fs.readFile('exampleDir/exampleFile.txt', 'utf-8');
    console.log('File Content:', data);

    // Recursively copy the file
    await fs.copy('exampleDir/exampleFile.txt', 'exampleDir/copyOfExampleFile.txt');

    // Move the file to a new location
    await fs.move('exampleDir/copyOfExampleFile.txt', 'exampleDir/movedExampleFile.txt');

    // Remove the file
    await fs.remove('exampleDir/movedExampleFile.txt');

    // Ensure a file exists; create it if it doesn't
    await fs.ensureFile('exampleDir/newFile.txt');

    // Write JSON data to a file
    const jsonData = { name: 'John Doe', age: 30 };
    await fs.writeJson('exampleDir/data.json', jsonData);

    // Read JSON data from a file
    const jsonFileContent = await fs.readJson('exampleDir/data.json');
    console.log('JSON File Content:', jsonFileContent);
  } catch (err) {
    console.error('Error during file operations:', err);
  }
}

// Execute the file operations
performFileOperations();
JAVASCRIPT

Ce fragment de code illustre les fonctionnalités du module de système de fichiers amélioré de Node.js, la bibliothèque fs-extra. Le script implémente une méthode asynchrone appelée performFileOperations pour effectuer plusieurs opérations de fichiers après avoir importé fs-extra. En utilisant la méthode fs.ensureDir(), il vérifie d'abord qu'un répertoire nommé "exampleDir" existe. Puis, en utilisant la méthode fs.outputFile(), il crée un fichier appelé "exampleFile.txt" dans ce répertoire et y écrit le texte "Hello, world!". En utilisant fs.readFile(), le script lit le contenu du fichier et l'affiche dans la console.

Sortie Console

fs extra npm (Comment Ça Fonctionne Pour les Développeurs) : Figure 2 - Sortie de la console pour l'application Node.js utilisant la bibliothèque fs-extra pour la gestion des fichiers.

En outre, il utilise des fonctions récursives comme fs.copy() pour copier le fichier vers "copyOfExampleFile.txt" puis utilise fs.move() pour relocaliser cette copie vers "movedExampleFile.txt". Ensuite, fs.remove() est utilisé pour supprimer le fichier relocalisé. Le script utilise la fonction fs.ensureFile() pour vérifier l'existence de "newFile.txt" et fs.writeJson() pour écrire un objet JSON dans le fichier "data.json". Enfin, il utilise fs.readJson() pour lire les données JSON du fichier et les affiche dans la console. Les erreurs survenant durant ces procédures sont interceptées et affichées dans la console. L'intérêt et la facilité d'utilisation de fs-extra pour la gestion des fichiers et des répertoires dans Node.js sont ensuite démontrés en appelant la fonction performFileOperations pour effectuer ces opérations les unes après les autres.

SORTIE

fs extra npm (Comment Ça Fonctionne Pour les Développeurs) : Figure 3 - Sortie de l'explorateur de fichiers affichant le répertoire exampleDir et les fichiers créés par programmation à l'aide de la bibliothèque fs-extra dans l'application Node.js

Combiner fs-extra avec IronPDF

A potent toolkit for Node.js developers is produced by combining IronPDF for reliable PDF production with fs-extra for improved file system operations. Ce tutoriel vous montrera comment configurer un projet Node.js en utilisant IronPDF et fs-extra et inclura un code d'exemple illustrant comment les utiliser ensemble.

Qu'est-ce qu'IronPDF ?

IronPDF est une bibliothèque Node.js puissante qui vise à convertir des données HTML en fichiers PDF d'une qualité extrêmement élevée. Il accélère le processus de conversion des fichiers HTML, CSS et autres JavaScript en PDFs correctement formatés sans compromettre le contenu web d'origine. C'est très utile pour les applications web qui ont besoin de produire des documents dynamiques et imprimables tels que des factures, certificats et rapports.

IronPDF possède plusieurs fonctionnalités, y compris des paramètres de page personnalisables, des en-têtes, pieds de page et des options pour ajouter des polices et des images. Il peut gérer des styles et des mises en page complexes pour s'assurer que chaque sortie PDF de test répond aux spécifications. De plus, IronPDF contrôle l'exécution de JavaScript dans le HTML, permettant un rendu précis du contenu dynamique et interactif.

fs extra npm (Comment Ça Fonctionne Pour les Développeurs) : Figure 4 - IronPDF pour Node.js : La Bibliothèque PDF de Node.js

Caractéristiques de IronPDF

Génération de PDF à partir de HTML

Convertissez du HTML, CSS, et JavaScript en PDF. Prend en charge les normes web modernes comme les media queries et le design responsive, ce qui est utile pour utiliser HTML et CSS pour décorer dynamiquement des documents PDF, des rapports et des factures.

Édition de PDF

  • Ajouter du texte, des images et d'autres matériaux aux PDF existants.
  • Extraire du texte et des images de fichiers PDF.
  • Fusionner plusieurs PDFs en un seul fichier.
  • Diviser des fichiers PDF en plusieurs documents distincts.
  • Ajouter des en-têtes, pieds de page, annotations et filigranes.

Performance et Fiabilité

Les attributs de conception incluent des performances élevées et une fiabilité dans des contextes industriels. Il gère facilement de grands ensembles de documents.

Installer IronPDF

Pour obtenir les outils nécessaires pour travailler avec des PDFs dans les projets Node.js, installez le IronPDF package.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

Intégrer fs-extra npm avec IronPDF

Pour démontrer l'utilisation de fs-extra avec IronPDF, ouvrez index.js dans votre éditeur de texte préféré et ajoutez le code suivant :

// Import fs-extra and IronPDF libraries
const fs = require('fs-extra');
const IronPdf = require("@ironsoftware/ironpdf");

const document = IronPdf.PdfDocument;
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: '' }); // Set your IronPDF license key here

// Asynchronous function to create and manage PDF files
async function createAndManagePDF() {
  try {
    // Ensure the parent directory exists
    const outputDir = 'output';
    await fs.ensureDir(outputDir);

    // Define the HTML content for the PDF
    const htmlContent = `
      <html>
        <head>
          <title>Sample PDF</title>
        </head>
        <body>
          <h1>Hello, world!</h1>
          <p>This is a sample PDF generated using IronPDF and fs-extra.</p>
        </body>
      </html>
    `;

    // Initialize IronPDF and generate a PDF from the HTML content
    let pdf = await document.fromHtml(htmlContent);
    const pdfPath = `${outputDir}/sample.pdf`;
    await pdf.saveAs(pdfPath);
    console.log('PDF generated successfully:', pdfPath);

    // Read the PDF file and check its size
    const pdfData = await fs.readFile(pdfPath);
    console.log('PDF file size:', pdfData.length);

    // Copy the PDF file
    const copiedPdfPath = `${outputDir}/copied_sample.pdf`;
    await fs.copy(pdfPath, copiedPdfPath);
    console.log('PDF copied successfully:', copiedPdfPath);

    // Move the copied PDF file
    const movedPdfPath = `${outputDir}/moved_sample.pdf`;
    await fs.move(copiedPdfPath, movedPdfPath);
    console.log('PDF moved successfully:', movedPdfPath);

    // Remove the original PDF file
    await fs.remove(pdfPath);
    console.log('Original PDF removed successfully:', pdfPath);
  } catch (err) {
    console.error('Error during PDF creation and management:', err);
  }
}

// Execute the PDF creation and management operations
createAndManagePDF();
// Import fs-extra and IronPDF libraries
const fs = require('fs-extra');
const IronPdf = require("@ironsoftware/ironpdf");

const document = IronPdf.PdfDocument;
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: '' }); // Set your IronPDF license key here

// Asynchronous function to create and manage PDF files
async function createAndManagePDF() {
  try {
    // Ensure the parent directory exists
    const outputDir = 'output';
    await fs.ensureDir(outputDir);

    // Define the HTML content for the PDF
    const htmlContent = `
      <html>
        <head>
          <title>Sample PDF</title>
        </head>
        <body>
          <h1>Hello, world!</h1>
          <p>This is a sample PDF generated using IronPDF and fs-extra.</p>
        </body>
      </html>
    `;

    // Initialize IronPDF and generate a PDF from the HTML content
    let pdf = await document.fromHtml(htmlContent);
    const pdfPath = `${outputDir}/sample.pdf`;
    await pdf.saveAs(pdfPath);
    console.log('PDF generated successfully:', pdfPath);

    // Read the PDF file and check its size
    const pdfData = await fs.readFile(pdfPath);
    console.log('PDF file size:', pdfData.length);

    // Copy the PDF file
    const copiedPdfPath = `${outputDir}/copied_sample.pdf`;
    await fs.copy(pdfPath, copiedPdfPath);
    console.log('PDF copied successfully:', copiedPdfPath);

    // Move the copied PDF file
    const movedPdfPath = `${outputDir}/moved_sample.pdf`;
    await fs.move(copiedPdfPath, movedPdfPath);
    console.log('PDF moved successfully:', movedPdfPath);

    // Remove the original PDF file
    await fs.remove(pdfPath);
    console.log('Original PDF removed successfully:', pdfPath);
  } catch (err) {
    console.error('Error during PDF creation and management:', err);
  }
}

// Execute the PDF creation and management operations
createAndManagePDF();
JAVASCRIPT

Le code ci-dessus de Node.js combine IronPDF pour créer et gérer des fichiers PDF avec fs-extra pour des opérations avancées sur le système de fichiers. Il commence par s'assurer qu'un répertoire appelé "output" existe à l'aide de la fonction fs.ensureDir(). Un répertoire est un regroupement hiérarchique de répertoires et de fichiers. La structure du PDF qui sera créé est définie par le contenu HTML, qui est contenu dans htmlContent. Il utilise la classe PdfDocument d'IronPDF pour insérer le contenu HTML avec la méthode fromHtml() et enregistre le PDF résultant dans "output/sample.pdf" à l'aide de la fonction saveAs().

SORTIE

fs extra npm (Comment Ça Fonctionne Pour les Développeurs) : Figure 5 - Sortie de la console pour l'application Node.js combinant les bibliothèques fs-extra et IronPDF. Le programme utilise la bibliothèque fs-extra pour la gestion des fichiers et répertoires et la bibliothèque IronPDF pour convertir le contenu HTML en un document PDF.

fs-extra est alors utilisé pour continuer les opérations de fichiers : fs.readFile() obtient le contenu du PDF pour suivre sa taille. fs.copy() duplique le "output/sample.pdf" généré vers "output/copied_sample.pdf", puis la méthode fs.move() déplace cette copie vers "output/moved_sample.pdf", et enfin, supprime le PDF original. La gestion des erreurs via les blocs try-catch garantit que tous les problèmes survenant lors de l'exécution des méthodes fs ou des activités sont correctement interceptés et consignés. Dans l'ensemble, cette configuration montre comment améliorer les opérations de fichiers avec fs-extra et comment créer et manipuler des PDF avec facilité dans les applications Node.js en utilisant IronPDF.

SORTIE PDF

fs extra npm (Comment Ça Fonctionne Pour les Développeurs) : Figure 6 - PDF de Sortie généré à l'aide de IronPDF et fs-extra : moved_sample.pdf

Conclusion

Finally, fs-extra and IronPDF together provide a solid solution for managing file system operations and PDF production in Node.js applications. Avec ses méthodes améliorées, fs-extra simplifie les tâches comme la création de répertoires, la copie, le déplacement et la suppression de fichiers, et établit une base solide pour une gestion efficace des fichiers. Pendant ce temps, IronPDF offre une flexibilité dans la création et le traitement des documents, permettant de convertir facilement le contenu HTML en documents PDF.

Lorsqu'elles sont combinées, ces bibliothèques permettent aux développeurs de créer facilement des applications dynamiques capables de créer, gérer et travailler avec des fichiers PDF. L'intégration de fs-extra et IronPDF permet aux développeurs de répondre à une grande variété de besoins en gestion de documents dans les environnements Node.js avec des capacités puissantes, qu'ils soient en train de créer des factures, des rapports ou des documents dynamiques.

With the help of IronPDF and Iron Software, you can expand your toolkit for node development with OCR, barcode scanning, PDF production, Excel interaction, and a host of other functions. Iron Software fournit des systèmes hautement configurables avec une gamme de plugins pris en charge par la communauté, permettant aux développeurs de créer plus rapidement des fonctionnalités et des applications web.

IronPDF offre une documentation détaillée, et les options de licence commencent par des plans comme $799, ce qui permet aux développeurs de choisir facilement le meilleur modèle pour leurs besoins de projet. Ces fonctionnalités permettent aux développeurs de résoudre efficacement et efficacement une variété de problèmes.

Invité : Engagez Elephant

Darrius Serrant
Ingénieur logiciel Full Stack (WebOps)

Darrius Serrant est titulaire d'un baccalauréat en informatique de l'université de Miami et travaille comme ingénieur marketing WebOps Full Stack chez Iron Software. Attiré par le codage dès son plus jeune âge, il a vu l'informatique comme à la fois mystérieuse et accessible, en faisant le ...

Lire la suite