Saltar al pie de página
AYUDA DE NODE

uuid NPM (Cómo funciona para desarrolladores)

El UUID (identificador único universal) es una biblioteca popular de NPM (Node Package Manager) utilizada para generar identificadores únicos universales (UUIDs) en aplicaciones de JavaScript. Los UUIDs son útiles para crear claves únicas en bases de datos, identificadores de sesión y más. Más adelante en este artículo, también examinaremos IronPDF, un paquete Node.js de generación de PDF de Iron Software. Ambas bibliotecas pueden usarse para generar ID únicos para bases de datos y el UUID generado puede almacenarse en formato PDF con fines de archivo.

Características principales

  1. Cumplimiento de RFC4122: el paquete UUID admite la creación de UUID que cumplen con RFC4122, lo que garantiza que sean universalmente únicos y estandarizados.
  2. Múltiples versiones de UUID: admite varias versiones de UUID, incluidas:

    • v1: UUID basados ​​en marcas de tiempo.
    • v3: UUID basados ​​en espacios de nombres que utilizan hash MD5.
    • v4: UUID generados aleatoriamente.
    • v5: UUID basados ​​en espacios de nombres que utilizan hash SHA-1.
    • v6: UUID basados ​​en marcas de tiempo con campos reordenados para una mejor clasificación 1 .
  3. Compatibilidad multiplataforma: el paquete funciona en diferentes entornos, incluidos Node.js, React Native y navegadores web modernos.
  4. Cero dependencias: ocupa poco espacio y no tiene dependencias, lo que lo hace liviano y fácil de integrar en proyectos.
  5. Criptográficamente fuerte: los UUID generados son criptográficamente fuertes, lo que garantiza una alta seguridad.

Instalación

Para instalar el paquete UUID, use cualquiera de los siguientes comandos:

npm install uuid
npm install uuid
SHELL

o

yarn add uuid
yarn add uuid
SHELL

Uso básico

Aquí se muestra cómo generar cadenas de UUID usando el paquete 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

Alternativamente, usando la sintaxis 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

Características avanzadas

  1. UUID basados ​​en espacios de nombres: puede crear UUID basados ​​en un espacio de nombres y un nombre utilizando la versión 3 o la versión 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. Validación y análisis: el paquete UUID también proporciona funciones para validar y analizar 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

Introducción a IronPDF

uuid NPM (Cómo funciona para desarrolladoes): Figura 1 - IronPDF

IronPDF es una biblioteca popular de generación de PDF utilizada para generar, editar y convertir documentos PDF. El paquete NPM de IronPDF está específicamente diseñado para aplicaciones Node.js. Aquí hay algunas características clave y detalles sobre el paquete NPM de IronPDF:

Características principales

Conversión de HTML a PDF

Convertir contenido HTML en documentos PDF sin esfuerzo. Esta característica es particularmente útil para generar PDFs dinámicos a partir de contenido web.

Conversión de URL a PDF

Generar PDFs directamente desde URLs, lo que le permite capturar el contenido de páginas web y guardarlas como archivos PDF programáticamente.

Manipulación de PDF

Fusionar, dividir y manipular documentos PDF existentes con facilidad. IronPDF proporciona funcionalidades como añadir páginas, dividir documentos y más.

Seguridad en PDF

Proteja sus documentos PDF encriptándolos con contraseñas o aplicando firmas digitales. IronPDF ofrece opciones para proteger sus documentos sensibles contra el acceso no autorizado.

Resultados de alta calidad

Producir documentos PDF de alta calidad con representación precisa de texto, imágenes y formato. IronPDF asegura que sus PDFs generados mantengan la fidelidad al contenido original.

Compatibilidad entre plataformas

IronPDF es compatible con varias plataformas, incluyendo Windows, Linux y macOS, lo que lo hace apto para una amplia gama de entornos de desarrollo.

Integración sencilla

Integre fácilmente IronPDF en sus aplicaciones de Node.js usando su paquete npm. La API está bien documentada, lo que hace que sea sencillo incorporar capacidades de generación de PDF en sus proyectos.

Instalación

Para instalar el paquete NPM de IronPDF, use el siguiente comando:

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

Generar un documento PDF con IronPDF y utilizar el paquete UUID NPM

Los UUIDs se pueden usar en muchos lugares de una aplicación. Es una parte muy atómica en una aplicación. Los UUIDs se pueden usar como secretos para datos cifrados, y estos secretos se pueden almacenar en documentos PDF con fines de archivo. A continuación, veremos un ejemplo donde generamos diferentes versiones de UUID y las documentamos en un documento PDF usando IronPDF.

Instalar dependencias: primero, cree un nuevo proyecto Next.js (si aún no lo ha hecho) usando el siguiente comando. Consulte aquí.

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

A continuación, navega al directorio de tu proyecto:

cd uuid-pdf
cd uuid-pdf
SHELL

Instale los paquetes requeridos:

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

Crear un PDF

Ahora, vamos a crear un ejemplo simple de generación de un PDF usando IronPDF.

API de generación de PDF: el primer paso es crear una API de backend para generar el documento PDF. Dado que IronPDF solo se ejecuta del lado del servidor, necesitamos crear una API para llamar cuando un usuario quiera generar un PDF. Cree un archivo en la ruta pages/api/pdf.js y agregue el siguiente contenido.

IronPDF requiere una clave de licencia, puedes obtenerla de la página de licencias y colocarla en el código a continuación.

// 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

Ahora modifique el código index.js como se muestra a continuación para usar UUID y 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

Explicación del código

  1. Importaciones y configuración inicial:

    • Head de next/head: Se utiliza para modificar el <head> del documento HTML para establecer el título y el favicon.
    • styles desde ../styles/Home.module.css: Importa estilos CSS locales para el componente.
    • React, useState: Ganchos de React para la gestión del estado.
    • uuidv4, uuidv5, uuidValidate: Funciones importadas del paquete UUID para la generación, validación y análisis de UUID.
  2. Funcionalidad del componente:

    • Gestión de estados:

      • useState: Administra el estado del campo de entrada de texto donde el usuario ingresa un UUID.
      • text: Variable de estado que contiene el valor actual del campo de entrada.
    • Generación de UUID:

      • uuidv4(): Genera un UUID aleatorio versión 4.
      • MY_NAMESPACE y uuidv5('IronPDF', MY_NAMESPACE): Genera un UUID versión 5 basado en un espacio de nombres determinado.
    • Función de generación de PDF (función (generatePdf):

      • Utiliza fetch para llamar a un punto final de API (/api/pdf-uuid) con parámetros de consulta (v4, v5, c).
      • Descarga la respuesta como un blob, crea una URL para ella y genera un enlace de descarga (elemento <a>).
      • Agrega el enlace al DOM, hace clic en él para iniciar la descarga y luego lo elimina del DOM.
    • Manejo de eventos (función (handleChange):

      • Actualiza el estado text cuando el usuario escribe en el campo de entrada.
  3. Método de renderización:

    • Devuelve JSX para la UI del componente:
      • Incluye un título (Head), una sección principal (<main>) y varios párrafos que muestran UUID y campos de entrada para la interacción del usuario.
      • La función generatePdf está vinculada a un clic de botón para activar la generación de PDF.
    • Los estilos CSS se definen localmente (<style jsx>) y globalmente (<style jsx global>) usando styled-jsx de Next.js.

Resultado

uuid NPM (Cómo funciona para desarrolladoes): Figura 2

PDF

uuid NPM (Cómo funciona para desarrolladoes): Figura 3

Licencia de IronPDF

IronPDF funciona con la clave de licencia. IronPDF NPM ofrece una clave de licencia de prueba gratuita para permitir a los usuarios probar sus extensas características antes de la compra.

Coloca la Clave de Licencia aquí:

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

Conclusión

El paquete UUID NPM es una herramienta robusta y versátil para generar identificadores únicos en aplicaciones de JavaScript. Su soporte para múltiples versiones de UUID, compatibilidad multiplataforma, y fortaleza criptográfica lo convierten en una biblioteca esencial para desarrolladores que necesitan identificadores únicos.

IronPDF permite a los desarrolladores de Node.js elevar las capacidades de manejo de PDF dentro de sus aplicaciones, ofreciendo una funcionalidad, fiabilidad y rendimiento incomparables. Aprovechando las características avanzadas de IronPDF para la generación, conversión y manipulación de PDF, los desarrolladores pueden optimizar los flujos de trabajo de documentos, mejorar las experiencias de los usuarios y cumplir con diversos requisitos empresariales con confianza.

Adopta IronPDF para desbloquear todo el potencial del manejo de PDF en tus proyectos de Node.js y ofrecer soluciones de documentos de calidad profesional sin esfuerzo. Por otro lado, el paquete UUID NPM se puede usar para generar ID únicos cada vez que se necesiten para cifrar datos. Estas claves secretas se pueden almacenar en PDFs usando IronPDF con fines de archivo.

Darrius Serrant
Ingeniero de Software Full Stack (WebOps)

Darrius Serrant tiene una licenciatura en Ciencias de la Computación de la Universidad de Miami y trabaja como Ingeniero de Marketing WebOps Full Stack en Iron Software. Atraído por la programación desde joven, vio la computación como algo misterioso y accesible, convirtiéndolo en el ...

Leer más

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame