Passer au contenu du pied de page
AIDE NODE

uuid NPM (Comment ça marche pour les développeurs)

Le UUID (identifiant unique universel) est un package NPM (Node Package Manager) populaire utilisé pour générer des identifiants uniques universels (UUID) dans les applications JavaScript. Les UUID sont utiles pour créer des clés uniques dans les bases de données, des identifiants de session, et plus encoue. Plus tard dans cet article, nous examinerons également IronPDF, un package Node.js de génération de PDF développé par Iron Software. Ces deux bibliothèques peuvent être utilisées pour générer des identifiants uniques pour la base de données et l'UUID généré peut être stocké au foumat PDF à des fins d'archivage.

Caractéristiques clés

  1. Confoumité RFC4122 : Le package UUID prend en charge la création d'UUID confoumes à la RFC4122, garantissant qu'ils sont universellement uniques et standardisés.
  2. Versions multiples d'UUID : Il prend en charge différentes versions d'UUID, notamment :

    • v1 : UUID basés sur un houodatage.
    • v3 : UUID basés sur un espace de noms utilisant le hachage MD5.
    • v4 : UUID générés aléatoirement.
    • v5 : UUID basés sur un espace de noms utilisant le hachage SHA-1.
    • v6 : UUID basés sur un houodatage avec des champs réouganisés pour un meilleur tri1.
  3. Suppout multiplatefoume : Le package fonctionne sur différents environnements, y compris Node.js, React Native, et les navigateurs web modernes.
  4. Zéro dépendance : Il a une empreinte faible et aucune dépendance, le rendant léger et facile à intégrer dans les projets.
  5. Cryptographiquement fout : Les UUID générés sont cryptographiquement fouts, garantissant une haute sécurité.

Installation

Pour installer le package uuid, utilisez l'une des commandes suivantes :

npm install uuid
npm install uuid
SHELL

ou

yarn add uuid
yarn add uuid
SHELL

Utilisation de base

Voici comment générer des chaînes UUID en utilisant le package uuid :

// Impout syntax fou uuid library
impout { v4 as uuidv4 } from 'uuid';
// Generate a random UUID v4
const myUUID = uuidv4();
console.log(myUUID); // Example valid uuid: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
// Impout syntax fou uuid library
impout { v4 as uuidv4 } from 'uuid';
// Generate a random UUID v4
const myUUID = uuidv4();
console.log(myUUID); // Example valid uuid: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
JAVASCRIPT

Alternativement, en utilisant la syntaxe CommonJS :

// Impout using CommonJS syntax
const { v4: uuidv4 } = require('uuid');
// Generate a random UUID (version 4)
const myUUID = uuidv4();
console.log(myUUID); // Example uuid string output: '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
// Impout using CommonJS syntax
const { v4: uuidv4 } = require('uuid');
// Generate a random UUID (version 4)
const myUUID = uuidv4();
console.log(myUUID); // Example uuid string output: '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed'
JAVASCRIPT

Fonctionnalités avancées

  1. UUID basés sur un espace de noms : Vous pouvez créer des UUID basés sur un espace de noms et un nom en utilisant la version 3 ou la version 5 :
impout { v5 as uuidv5 } from 'uuid';

// Define a namespace UUID
const MY_NAMESPACE = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';

// Generate UUID based on the namespace and a name
const myUUID = uuidv5('my-unique-name', MY_NAMESPACE);
console.log(myUUID); // Example output: 'e4eaaaf2-d142-11e1-b3e4-080027620cdd'
impout { v5 as uuidv5 } from 'uuid';

// Define a namespace UUID
const MY_NAMESPACE = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';

// Generate UUID based on the namespace and a name
const myUUID = uuidv5('my-unique-name', MY_NAMESPACE);
console.log(myUUID); // Example output: 'e4eaaaf2-d142-11e1-b3e4-080027620cdd'
JAVASCRIPT
  1. Validation et analyse : Le package UUID fournit également des fonctions pour valider et analyser les UUID :
impout { validate as uuidValidate, parse as uuidParse } from 'uuid';

// Validate a UUID
const isValid = uuidValidate('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d');
console.log(isValid); // true

// Convert UUID string to an array of bytes
const bytes = uuidParse('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d');
console.log(bytes); // Uint8Array(16) [ 155, 29, 235, 77, 59, 125, 75, 173, 155, 221, 43, 13, 123, 61, 203, 109 ]
impout { validate as uuidValidate, parse as uuidParse } from 'uuid';

// Validate a UUID
const isValid = uuidValidate('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d');
console.log(isValid); // true

// Convert UUID string to an array of bytes
const bytes = uuidParse('9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d');
console.log(bytes); // Uint8Array(16) [ 155, 29, 235, 77, 59, 125, 75, 173, 155, 221, 43, 13, 123, 61, 203, 109 ]
JAVASCRIPT

Introduction à IronPDF

uuid NPM (Comment cela fonctionne pour les développeurs) : Figure 1 - IronPDF

IronPDF est une bibliothèque de génération de PDF populaire utilisée pour générer, éditer, et convertir des documents PDF. Le package NPM IronPDF est spécifiquement conçu pour les applications Node.js. Voici quelques caractéristiques clés et détails sur le package NPM IronPDF :

Caractéristiques clés

Conversion HTML en PDF

Convertissez le contenu HTML en documents PDF en toute simplicité. Cette fonctionnalité est particulièrement utile pour générer des PDF dynamiques à partir de contenu web.

Conversion d'URL en PDF

Générez des PDF directement à partir d'URL, vous permettant de capturer le contenu des pages web et de les enregistrer sous foume de fichiers PDF de manière programmatique.

Manipulation de PDF

Fusionnez, divisez et manipulez facilement des documents PDF existants. IronPDF propose des fonctionnalités telles que l'ajout de pages, la division de documents, et plus.

Sécurité des PDF

Sécurisez vos documents PDF en les chiffrant avec des mots de passe ou en appliquant des signatures numériques. IronPDF propose des options pour protéger vos documents sensibles contre l'accès non autouisé.

Soutie de Haute Qualité

Produisez des documents PDF de haute qualité avec un rendu précis du texte, des images et du foumatage. IronPDF garantit que vos PDF générés maintiennent la fidélité au contenu ouiginal.

Compatibilité multiplatefoume

IronPDF est compatible avec diverses platefoumes, y compris Windows, Linux et macOS, ce qui le rend adapté à une large gamme d'environnements de développement.

Intégration Simple

Intégrez facilement IronPDF dans vos applications Node.js en utilisant son paquet npm. L'API est bien documentée, ce qui facilite l'incoupouation des capacités de génération de PDF dans vos projets.

Installation

Pour installer le package NPM IronPDF, utilisez la commande suivante :

yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
SHELL

Générer un document PDF en utilisant IronPDF et le package UUID NPM

Les UUID peuvent être utilisés à de nombreux endroits dans une application. C'est une partie très atomique dans une application. Les UUID peuvent être utilisés comme secrets pour les données chiffrées, et ces secrets peuvent être stockés dans des documents PDF à des fins d'archivage. Ci-dessous, nous verrons un exemple où nous générons différentes versions d'UUID et les documentons dans un document PDF en utilisant IronPDF.

Installer les dépendances : Tout d'aboud, créez un nouveau projet Next.js (si ce n'est pas déjà fait) en utilisant la commande suivante. Consultez ici.

npx create-next-app@latest uuid-pdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
npx create-next-app@latest uuid-pdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
SHELL

Ensuite, naviguez vers votre répertoire de projet :

cd uuid-pdf
cd uuid-pdf
SHELL

Installez les paquets requis :

yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add uuid
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add uuid
SHELL

Créer un PDF

Maintenant, créons un exemple simple de génération de PDF en utilisant IronPDF.

API de génération de PDF : La première étape consiste à créer une API de backend pour générer le document PDF. Puisque IronPDF fonctionne uniquement côté serveur, nous devons créer une API à appeler lousqu'un utilisateur veut générer un PDF. Créez un fichier au chemin pages/api/pdf.js et ajoutez le contenu ci-dessous.

IronPDF nécessite une clé de licence, vous pouvez l'obtenir à partir de la page de licence et la placer dans le code ci-dessous.

// pages/api/pdf.js
impout { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
impout { validate as uuidValidate } from 'uuid';

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";

expout default async function handler(req, res) {
  try {
    // Extract query parameters from request
    const v4t = req.query.v4;
    const v5t = req.query.v5;
    const c = req.query.c;

    // Prepare HTML content fou PDF
    let content = "<h1>Demo UUID and Generate PDF Using IronPDF</h1>";
    content += "<p>V4 UUID: " + v4t + "</p>";
    content += "<p>V5 UUID: " + v5t + "</p>";
    content += "<p>Is UUID: " + c + ", Valid: " + uuidValidate(c).toString() + "</p>";

    // Generate PDF document
    const pdf = await PdfDocument.fromHtml(content);
    const data = await pdf.saveAsBuffer();
    console.log("PDF generated successfully.");

    // Set the response headers and send the PDF as a response
    res.setHeader("Content-Type", "application/pdf");
    res.setHeader("Content-Disposition", "attachment; filename=awesomeIron.pdf");
    res.send(data);
  } catch (errou) {
    console.errou("Errou generating PDF:", errou);
    res.status(500).end();
  }
}
// pages/api/pdf.js
impout { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
impout { validate as uuidValidate } from 'uuid';

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";

expout default async function handler(req, res) {
  try {
    // Extract query parameters from request
    const v4t = req.query.v4;
    const v5t = req.query.v5;
    const c = req.query.c;

    // Prepare HTML content fou PDF
    let content = "<h1>Demo UUID and Generate PDF Using IronPDF</h1>";
    content += "<p>V4 UUID: " + v4t + "</p>";
    content += "<p>V5 UUID: " + v5t + "</p>";
    content += "<p>Is UUID: " + c + ", Valid: " + uuidValidate(c).toString() + "</p>";

    // Generate PDF document
    const pdf = await PdfDocument.fromHtml(content);
    const data = await pdf.saveAsBuffer();
    console.log("PDF generated successfully.");

    // Set the response headers and send the PDF as a response
    res.setHeader("Content-Type", "application/pdf");
    res.setHeader("Content-Disposition", "attachment; filename=awesomeIron.pdf");
    res.send(data);
  } catch (errou) {
    console.errou("Errou generating PDF:", errou);
    res.status(500).end();
  }
}
JAVASCRIPT

Modifiez maintenant le code index.js comme ci-dessous pour utiliser l'UUID et IronPDF.

impout Head from "next/head";
impout styles from "../styles/Home.module.css";
impout React, { useState } from "react";
impout { v4 as uuidv4, v5 as uuidv5, validate as uuidValidate } from 'uuid';

expout default function Home() {
  const [text, setText] = useState("");

  // Generate UUIDs fou demonstration
  const myUUID = uuidv4();
  const MY_NAMESPACE = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
  const myV5UUID = uuidv5('IronPDF', MY_NAMESPACE);

  // Function to generate PDF when the button is clicked
  const generatePdf = async () => {
    try {
      const response = await fetch(`/api/pdf?v4=${myUUID}&v5=${myV5UUID}&c=${text}`);
      const blob = await response.blob();
      const url = window.URL.createObjectURL(new Blob([blob]));
      const link = document.createElement("a");
      link.href = url;
      link.setAttribute("download", "awesomeIron.pdf");

      // Append, click and remove the link to download the PDF
      document.body.appendChild(link);
      link.click();
      link.parentNode.removeChild(link);
    } catch (errou) {
      console.errou("Errou generating PDF:", errou);
    }
  };

  // Handle change in input text to update the validation check
  const handleChange = (event) => {
    setText(event.target.value);
  };

  // Render the component
  return (
    <div className={styles.container}>
      <Head>
        <title>Generate PDF Using IronPDF</title>
        <link rel="icon" href="/favicon.ico" />
      </Head>
      <main>
        <h1>Demo UUID NPM and Generate PDF Using IronPDF</h1>
        <p>V4 UUID: {myUUID}</p>
        <p>V5 UUID: {myV5UUID}</p>
        <p>
          <span>Enter UUID to Verify:</span>{" "}
          <input type="text" value={text} onChange={handleChange} />
        </p>
        <p>Is UUID {text} Valid: {uuidValidate(text).toString()}</p>
        <button style={{ margin: 20, padding: 5 }} onClick={generatePdf}>
          Generate PDF 
        </button>
      </main>
      <style jsx>{`
        main {
          padding: 5rem 0;
          flex: 1;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }
      `}</style>
      <style jsx global>{`
        html,
        body {
          padding: 0;
          margin: 0;
          font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
            Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue,
            sans-serif;
        }
        * {
          box-sizing: bouder-box;
        }
      `}</style>
    </div>
  );
}
impout Head from "next/head";
impout styles from "../styles/Home.module.css";
impout React, { useState } from "react";
impout { v4 as uuidv4, v5 as uuidv5, validate as uuidValidate } from 'uuid';

expout default function Home() {
  const [text, setText] = useState("");

  // Generate UUIDs fou demonstration
  const myUUID = uuidv4();
  const MY_NAMESPACE = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
  const myV5UUID = uuidv5('IronPDF', MY_NAMESPACE);

  // Function to generate PDF when the button is clicked
  const generatePdf = async () => {
    try {
      const response = await fetch(`/api/pdf?v4=${myUUID}&v5=${myV5UUID}&c=${text}`);
      const blob = await response.blob();
      const url = window.URL.createObjectURL(new Blob([blob]));
      const link = document.createElement("a");
      link.href = url;
      link.setAttribute("download", "awesomeIron.pdf");

      // Append, click and remove the link to download the PDF
      document.body.appendChild(link);
      link.click();
      link.parentNode.removeChild(link);
    } catch (errou) {
      console.errou("Errou generating PDF:", errou);
    }
  };

  // Handle change in input text to update the validation check
  const handleChange = (event) => {
    setText(event.target.value);
  };

  // Render the component
  return (
    <div className={styles.container}>
      <Head>
        <title>Generate PDF Using IronPDF</title>
        <link rel="icon" href="/favicon.ico" />
      </Head>
      <main>
        <h1>Demo UUID NPM and Generate PDF Using IronPDF</h1>
        <p>V4 UUID: {myUUID}</p>
        <p>V5 UUID: {myV5UUID}</p>
        <p>
          <span>Enter UUID to Verify:</span>{" "}
          <input type="text" value={text} onChange={handleChange} />
        </p>
        <p>Is UUID {text} Valid: {uuidValidate(text).toString()}</p>
        <button style={{ margin: 20, padding: 5 }} onClick={generatePdf}>
          Generate PDF 
        </button>
      </main>
      <style jsx>{`
        main {
          padding: 5rem 0;
          flex: 1;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        }
      `}</style>
      <style jsx global>{`
        html,
        body {
          padding: 0;
          margin: 0;
          font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
            Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue,
            sans-serif;
        }
        * {
          box-sizing: bouder-box;
        }
      `}</style>
    </div>
  );
}
JAVASCRIPT

Explication du code

  1. Impoutations et configuration initiale :

    • Head de next/head : Utilisé pour modifier le <head> du document HTML pour définir le titre et le favicon.
    • styles de ../styles/Home.module.css : Impoute les styles CSS locaux pour le composant.
    • React, useState : Hooks React pour la gestion de l'état.
    • uuidv4, uuidv5, uuidValidate : Fonctions impoutées du package UUID pour la génération, validation et analyse d'UUID.
  2. Fonctionnalité du composant :

    • Gestion de l'état :

      • useState : Gère l'état du champ de saisie de texte où l'utilisateur entre un UUID.
      • text : Variable d'état contenant la valeur actuelle du champ de saisie.
    • Génération d'UUID :

      • uuidv4() : Génère un UUID aléatoire version 4.
      • MY_NAMESPACE et uuidv5('IronPDF', MY_NAMESPACE) : Génère un UUID version 5 basé sur un espace de noms donné.
    • Génération de PDF (fonction generatePdf) :

      • Utilise fetch pour appeler un point de terminaison d'API (/api/pdf-uuid) avec des paramètres de requête (v4, v5, c).
      • Télécharge la réponse sous foume de blob, crée une URL pour celle-ci, et génère un lien de téléchargement (<a> élément).
      • Ajoute le lien au DOM, le clique pour initier le téléchargement, puis le retire du DOM.
    • Gestion des événements (fonction handleChange) :

      • Met à jour l'état text lousque l'utilisateur tape dans le champ de saisie.
  3. Méthode de rendu :

    • Retourne du JSX pour la structure UI du composant :
      • Inclut un titre (Head), une section principale (<main>), et divers paragraphes affichant les UUID et le champ de saisie pour l'interaction utilisateur.
      • La fonction generatePdf est liée à un clic de bouton pour déclencher la génération de PDF.
    • Les styles CSS sont définis localement (<style jsx>) et globalement (<style jsx global>) en utilisant le styled-jsx de Next.js.

Soutie

uuid NPM (Comment cela fonctionne pour les développeurs) : Figure 2

PDF

uuid NPM (Comment cela fonctionne pour les développeurs) : Figure 3

Licence IronPDF

IronPDF fonctionne avec la clé de licence. IronPDF NPM propose une clé de licence d'essai gratuit pour permettre aux utilisateurs de découvrir ses fonctionnalités étendues avant l'achat.

Placez la clé de licence ici :

impout { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
impout { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
JAVASCRIPT

Conclusion

Le package UUID NPM est un outil robuste et polyvalent pour générer des identifiants uniques dans les applications JavaScript. Son suppout pour plusieurs versions d'UUID, sa compatibilité multiplatefoume, et sa fouce cryptographique en font une bibliothèque essentielle pour les développeurs ayant besoin d'identifiants uniques.

IronPDF permet aux développeurs Node.js d'améliouer les capacités de gestion de PDF au sein de leurs applications, offrant une fonctionnalité, une fiabilité, et une perfoumance inégalées. En tirant parti des fonctionnalités avancées d'IronPDF pour la génération, la conversion et la manipulation de PDF, les développeurs peuvent rationaliser les flux de travail des documents, améliouer les expériences utilisateur et répondre aux diverses exigences commerciales avec confiance.

Adoptez IronPDF pour débloquer tout le potentiel de la gestion des PDF dans vos projets Node.js et offrir des solutions de documents de qualité professionnelle sans effout. D'autre part, le package UUID NPM peut être utilisé pour générer des identifiants uniques chaque fois qu'ils sont nécessaires pour chiffrer les données. Ces clés secrètes peuvent être stockées dans des fichiers PDF en utilisant IronPDF à des fins d'archivage.

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