IRONSOFTWAREHOME
NODE 帮助

uuid NPM(开发者如何使用)

Curtis Chau
Curtis Chau
Updated: 2026年5月8日

UUID(通用唯一标识符)包是一个流行的NPM(Node包管理器)库,用于在JavaScript应用程序中生成通用唯一标识符(UUID)。 UUIDs对创建数据库中的唯一键、会话标识符等非常有用。 在本文后面,我们还将了解IronPDF,一个来自Iron Software的PDF生成Node.js软件包。 这两个库都可用于生成数据库的唯一ID,并且生成的UUID可以以PDF格式存储以用于存档目的。

关键特性

  1. RFC4122 合规性: UUID 包支持创建符合 RFC4122 的 UUID,确保它们具有普遍唯一性和标准化。

  2. 支持**多种 UUID 版本:**它支持多种 UUID 版本,包括:

    • **v1:**基于时间戳的 UUID。
    • **v3:**基于命名空间的 UUID,使用 MD5 哈希算法。
    • **v4:**随机生成的 UUID。
    • **v5:**使用 SHA-1 哈希的基于命名空间的 UUID。
    • **v6:**基于时间戳的 UUID,字段重新排序以改进排序1

3.**跨平台支持:**该软件包可在不同的环境中运行,包括Node.js、React Native 和现代 Web 浏览器。 4.**零依赖:**它占用空间小,没有依赖项,因此重量轻,易于集成到项目中。 5.**加密强度高:**生成的 UUID 具有加密强度,确保高安全性。

安装

要安装uuid包,请使用以下命令之一:

npm install uuid
SHELL

or

yarn add uuid
SHELL

基本用法

以下是使用uuid包生成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'
JavaScript

或者,使用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'
JavaScript

高级功能

1.**基于命名空间的 UUID:**您可以使用版本 3 或版本 5 基于命名空间和名称创建 UUID:

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

2.验证和解析: UUID 包还提供了用于验证和解析 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 ]
JavaScript

IronPDF简介

uuid NPM(开发者的工作原理):图1 - IronPDF

IronPDF 是用于生成、编辑和转换PDF文档的流行PDF生成库。 IronPDF NPM包是专为Node.js应用程序设计的。 以下是有关IronPDF NPM包的一些关键特点和详细信息:

关键特性

HTML 到 PDF 转换

轻松将HTML内容转换为PDF文档。 此功能特别适合从网络内容生成动态PDF。

URL到PDF转换

直接从URL生成PDF,允许您捕获网页内容并以编程方式将其保存为PDF文件。

PDF操作

轻松合并、拆分和操作现有PDF文档。 IronPDF提供了添加页面、拆分文档等功能。

PDF安全

通过密码加密或应用数字签名来保护您的PDF文档。 IronPDF提供了保护您的敏感文档免受未经授权访问的选项。

高质量输出

生成高质量的PDF文档,精确呈现文本、图像和格式。 IronPDF确保您生成的PDF保持对原始内容的忠实。

跨平台兼容性

IronPDF与多种平台兼容,包括Windows、Linux和macOS,使其适用于广泛的开发环境。

简单集成

轻松将IronPDF集成到您的Node.js应用程序中,使用其npm包。 API有良好的文档记录,使得将PDF生成功能融入您的项目变得简单明了。

安装

安装IronPDF NPM包,请使用以下命令:

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

使用IronPDF生成PDF文档并使用UUID NPM包

UUIDs可以在应用程序的多个地方使用。 它是应用程序的一个非常原子化的部分。 UUIDs可以用作加密数据的密钥,这些密钥可以存储在PDF文档中用于存档目的。 下面,我们将看到一个示例,其中我们生成不同版本的UUID并使用IronPDF将其记录在PDF文档中。

**安装依赖项:**首先,使用以下命令创建一个新的 Next.js 项目(如果还没有创建的话)。 请参阅这里

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

接下来,导航到您的项目目录:

cd uuid-pdf
SHELL

安装所需的包:

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

创建PDF

现在,让我们创建一个使用IronPDF生成PDF的简单示例。

**PDF 生成 API:**第一步是创建后端 API 来生成 PDF 文档。 由于IronPDF仅在服务器端运行,因此我们需要创建一个API,以便在用户想要生成PDF时调用。 在路径pages/api/pdf.js创建一个文件,并添加以下内容。

IronPDF需要一个许可密钥,您可以从许可页面获取,并将其放入下面的代码中。

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

现在修改index.js代码,如下所示以使用UUID和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>
  );
}
JavaScript

代码解释

  1. 导入和初始设置:

    • Head 来自 <head>以设置标题和favicon。
    • styles 来自 ../styles/Home.module.css:为组件导入本地CSS样式。
    • React, useState:用于状态管理的React钩子。
    • uuidv4, uuidv5, uuidValidate:从UUID包导入的用于UUID生成、验证和解析的函数。
  2. 组件功能:

    • 状态管理:

      • useState:管理用户输入UUID的文本输入字段的状态。
      • text:保存输入字段当前值的状态变量。
    • UUID生成:

      • uuidv4():生成一个随机UUID版本4。
      • MY_NAMESPACEuuidv5('IronPDF', MY_NAMESPACE):基于给定命名空间生成UUID版本5。
    • PDF生成(generatePdf函数):

      • 使用v4, v5, c)。
      • 将响应下载为blob,创建URL,并生成下载链接(<a>元素)。
      • 将链接追加到DOM,点击以启动下载,然后从DOM中移除。
    • 事件处理(handleChange函数):

      • 当用户在输入字段中键入时更新text状态。
  3. 渲染方法:

    • 返回组件UI结构的JSX:
      • 包含一个标题(<main>),和各种显示UUID和用户交互动的输入字段的段落。
      • generatePdf函数绑定到按钮点击以触发PDF生成。
    • CSS样式使用Next.js的styled-jsx在本地(<style jsx global>)定义。

输出

uuid NPM(开发者的工作原理):图2

PDF

uuid NPM(开发者的工作原理):图3

IronPDF 许可证

IronPDF在许可证密钥上运行。 IronPDF npm提供免费试用许可证密钥,以便用户在购买前检查其广泛的功能。

在此处放置许可证密钥:

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

结论

UUID NPM包是一个强大而多功能的工具,用于在JavaScript应用中生成唯一标识符。 它对多个UUID版本的支持、跨平台兼容性和密码学强度使其成为需要唯一标识符的开发人员的必备库。

IronPDF使Node.js开发人员能够在其应用程序中提升PDF处理能力,提供无与伦比的功能、可靠性和性能。 通过利用IronPDF的高级功能进行PDF生成、转换和操作,开发人员可以简化文档工作流程、提升用户体验,并自信地满足多样的业务需求。

拥抱IronPDF来释放在Node.js项目中的PDF处理的全部潜力,并轻松交付专业级别的文档解决方案。 另一方面,UUID NPM包可以用于在需要加密数据时每次生成唯一ID。 这些密钥可以使用IronPDF存储在PDF中以用于存档目的。

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Related Articles

Key in blue circle

立即获取免费的 30 天试用版密钥

bullet_checked无需信用卡或创建账户
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge related to IronPDF Product Demo

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户