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 encore. 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 format PDF à des fins d'archivage.

Caractéristiques clés

  1. Conformité à la RFC4122 : Le package UUID prend en charge la création d'UUID conformes à la RFC4122, garantissant ainsi leur unicité universelle et leur normalisation.
  2. Plusieurs versions d'UUID : Il prend en charge différentes versions d'UUID, notamment :

    • v1 : UUID basés sur l'horodatage.
    • v3 : UUID basés sur l'espace de noms utilisant le hachage MD5.
    • v4 : UUID générés aléatoirement.
    • v5 : UUID basés sur l'espace de noms utilisant le hachage SHA-1.
    • v6 : UUID basés sur l'horodatage avec des champs réorganisés pour un tri amélioré 1 .
  3. Compatibilité multiplateforme : le package fonctionne dans différents environnements, notamment Node.js, React Native et les navigateurs web modernes.
  4. Zéro dépendance : Il a une empreinte réduite et aucune dépendance, ce qui le rend léger et facile à intégrer dans les projets.
  5. Cryptographiquement robuste : Les UUID générés sont cryptographiquement robustes, garantissant une sécurité élevée.

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 :

// Import syntax for uuid library
import { v4 as uuidv4 } from 'uuid';
// Generate a random UUID v4
const myUUID = uuidv4();
console.log(myUUID); // Example valid uuid: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
// Import syntax for uuid library
import { 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 :

// Import 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'
// Import 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 :
import { 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'
import { 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 :
import { 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 ]
import { 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 (Fonctionnement 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 forme 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 autorisé.

Sortie de Haute Qualité

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

Compatibilité multiplateforme

IronPDF est compatible avec diverses plateformes, 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'incorporation 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 avec 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 avec IronPDF.

Installation des dépendances : Commencez par créer un nouveau projet Next.js (si vous ne l'avez pas déjà fait) à l'aide de 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 avec IronPDF.

API de génération de PDF : La première étape consiste à créer une API backend pour générer le document PDF. Puisque IronPDF fonctionne uniquement côté serveur, nous devons créer une API à appeler lorsqu'un utilisateur veut générer un PDF. Créez un fichier à l'emplacement 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
import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
import { validate as uuidValidate } from 'uuid';

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

export 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 for 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 (error) {
    console.error("Error generating PDF:", error);
    res.status(500).end();
  }
}
// pages/api/pdf.js
import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
import { validate as uuidValidate } from 'uuid';

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

export 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 for 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 (error) {
    console.error("Error generating PDF:", error);
    res.status(500).end();
  }
}
JAVASCRIPT

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

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

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

  // Generate UUIDs for 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 (error) {
      console.error("Error generating PDF:", error);
    }
  };

  // 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: border-box;
        }
      `}</style>
    </div>
  );
}
import Head from "next/head";
import styles from "../styles/Home.module.css";
import React, { useState } from "react";
import { v4 as uuidv4, v5 as uuidv5, validate as uuidValidate } from 'uuid';

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

  // Generate UUIDs for 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 (error) {
      console.error("Error generating PDF:", error);
    }
  };

  // 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: border-box;
        }
      `}</style>
    </div>
  );
}
JAVASCRIPT

Explication du code

  1. Importations et configuration initiale :

    • Head de next/head: Utilisé pour modifier le <head> du document HTML afin de 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 d'état.
    • uuidv4, uuidv5, uuidValidate: Fonctions importées du package UUID pour la génération, la validation et l'analyse des 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 API (/api/pdf-uuid) avec des paramètres de requête (v4, v5, c).
      • Télécharge la réponse sous forme de blob, crée une URL pour celle-ci et génère un lien de téléchargement (élément <a>).
      • 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 lorsque l'utilisateur saisit du texte dans le champ de saisie.
  3. Méthode de rendu :

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

Sortie

uuid NPM (Fonctionnement pour les développeurs) : Figure 2

PDF

uuid NPM (Fonctionnement 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 :

import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
import { 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 support pour plusieurs versions d'UUID, sa compatibilité multiplateforme, et sa force 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éliorer les capacités de gestion de PDF au sein de leurs applications, offrant une fonctionnalité, une fiabilité, et une performance 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éliorer 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 effort. 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 avec 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

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi