节点帮助

uuid NPM(开发人员如何工作)

发布 2024年八月13日
分享:

简介

袠薪褎芯褉屑邪褑懈芯薪薪褘泄 UUID (全局唯一标识符) 包是一个流行的NPM (节点软件包管理器) 用于生成通用唯一标识符的库 (UUIDs) 在JavaScript应用程序中。UUID在创建数据库中唯一键、会话标识符等方面非常有用。稍后在本文中,我们还将探讨 IronPDF 一个用于生成PDF的Node.js包来自 铁软件(Iron Software)这两个库都可以用于生成数据库的唯一ID,并且生成的UUID可以以PDF格式存储以进行归档。

主要特性

  1. RFC4122 合规:UUID 包支持创建符合 RFC4122 标准的 UUID,确保它们是全球唯一且标准化的。

  2. 多种 UUID 版本:支持各种版本的 UUID,包括:

    • v1:基于时间戳的 UUID。

    • v3:使用 MD5 哈希的基于命名空间的 UUID。

    • v4:随机生成的 UUID。

    • v5:使用 SHA-1 哈希的基于命名空间的 UUID。

    • v6:重新排列字段的基于时间戳的 UUID,以改善排序。1.
  3. 跨平台支持: 该软件包可以在不同的环境中工作, 包括 Node.js、React Native 和现代网络浏览器。

  4. 零依赖: 它的体积小且没有依赖关系,使其轻量且易于集成到项目中。

  5. 密码学强度: 生成的 UUID 是密码学强度高的,确保了高度的安全性。

安装

要安装uuid软件包,请使用以下命令行:

npm install uuid
or
yarn add uuid
npm install uuid
or
yarn add uuid
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

基本用法

以下是如何使用 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'
// 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'
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

或者,使用CommonJS语法:

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'
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'
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

高级功能

  1. 基于命名空间的UUID: 在项目顶端导入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'
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'
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#
  1. 验证和解析: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 ]
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 ]
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

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,适用于广泛的开发环境。

简单集成

通过其npm包,轻松将IronPDF集成到您的Node.js应用程序中。API有详细文档,使得将PDF生成功能纳入您的项目变得非常简单。

安装

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

yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

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

UUID 可以在应用程序的许多地方使用。它是应用程序中非常关键的一部分。UUID 可以用作加密数据的密钥,这些密钥可以存储在 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"
npx create-next-app@latest uuid-pdf --use-npm --example "https://github.com/vercel/next-learn/tree/main/basics/learn-starter"
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

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

cd uuid-pdf
cd uuid-pdf
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

安装所需的软件包:

yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add uuid
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add uuid
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

创建PDF

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

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

IronPDF 需要一个许可证密钥,你可以从这个网站获取。 许可证页面 Please provide the content you would like translated into Chinese along with the code where it should be placed.

// pages/api/pdf.js
import {IronPdfGlobalConfig, PdfDocument} from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";
  export default async function handler(req, res) {
    try {
      const v4t = req.query.v4;
      const v5t = req.query.v5;
      const c = req.query.c;
      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>";
      const pdf = await PdfDocument.fromHtml(content);
      const data = await pdf.saveAsBuffer();
      console.error("data PDF:", data);
      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";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";
  export default async function handler(req, res) {
    try {
      const v4t = req.query.v4;
      const v5t = req.query.v5;
      const c = req.query.c;
      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>";
      const pdf = await PdfDocument.fromHtml(content);
      const data = await pdf.saveAsBuffer();
      console.error("data PDF:", data);
      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();
    }
  }
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

现在修改index.js代码如下,以使用UUID和IronPDF。

import Head from "next/head";
import styles from "../styles/Home.module.css";
import React, { useState, useEffect } from "react";
import { v4 as uuidv4 } from 'uuid';
import { v5 as uuidv5 } from 'uuid';
import { validate as uuidValidate, parse as uuidParse } from 'uuid';
export default function Home() {
  const [text, setText] = useState("");
  const myUUID = uuidv4();
  const MY_NAMESPACE = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
  const myV5UUID = uuidv5('IronPDF', MY_NAMESPACE);
  const generatePdf = async () => {
    try {
      const response = await fetch("/api/pdf-uuid?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");
      document.body.appendChild(link);
      link.click();
      link.parentNode.removeChild(link);
    } catch (error) {
      console.error("Error generating PDF:", error);
    }
  };
  const handleChange = (event) => {
    setText(event.target.value);
  };
  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>{" "}
        </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;
        }
        footer {
          width: 100%;
          height: 100px;
          border-top: 1px solid #eaeaea;
          display: flex;
          justify-content: center;
          align-items: center;
        }
        footer img {
          margin-left: 0.5rem;
        }
        footer a {
          display: flex;
          justify-content: center;
          align-items: center;
          text-decoration: none;
          color: inherit;
        }
        code {
          background: #fafafa;
          border-radius: 5px;
          padding: 0.75rem;
          font-size: 1.1rem;
          font-family:
            Menlo,
            Monaco,
            Lucida Console,
            Liberation Mono,
            DejaVu Sans Mono,
            Bitstream Vera Sans Mono,
            Courier New,
            monospace;
        }
      `}</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, useEffect } from "react";
import { v4 as uuidv4 } from 'uuid';
import { v5 as uuidv5 } from 'uuid';
import { validate as uuidValidate, parse as uuidParse } from 'uuid';
export default function Home() {
  const [text, setText] = useState("");
  const myUUID = uuidv4();
  const MY_NAMESPACE = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
  const myV5UUID = uuidv5('IronPDF', MY_NAMESPACE);
  const generatePdf = async () => {
    try {
      const response = await fetch("/api/pdf-uuid?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");
      document.body.appendChild(link);
      link.click();
      link.parentNode.removeChild(link);
    } catch (error) {
      console.error("Error generating PDF:", error);
    }
  };
  const handleChange = (event) => {
    setText(event.target.value);
  };
  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>{" "}
        </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;
        }
        footer {
          width: 100%;
          height: 100px;
          border-top: 1px solid #eaeaea;
          display: flex;
          justify-content: center;
          align-items: center;
        }
        footer img {
          margin-left: 0.5rem;
        }
        footer a {
          display: flex;
          justify-content: center;
          align-items: center;
          text-decoration: none;
          color: inherit;
        }
        code {
          background: #fafafa;
          border-radius: 5px;
          padding: 0.75rem;
          font-size: 1.1rem;
          font-family:
            Menlo,
            Monaco,
            Lucida Console,
            Liberation Mono,
            DejaVu Sans Mono,
            Bitstream Vera Sans Mono,
            Courier New,
            monospace;
        }
      `}</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>
  );
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

代码解释

  1. 导入和初始设置:

    • 从 next/head 导入: 用于修改HTML文档的标题和favicon设置。
    • import styles from "../styles/Home.module.css": 导入组件的本地CSS样式。
    • React, useState, useEffect: 用于状态管理和副作用的基本React钩子。
    • uuidv4, uuidv5, uuidValidate, uuidParse: 从UUID包中导入的函数,用于UUID生成、验证和解析。
  2. 组件功能:
  • 状态管理:

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

    • uuidv4(): 生成一个随机的UUID版本4。

      • MY_NAMESPACE 和 uuidv5('IronPDF', 我的_命名空间): 根据给定的命名空间生成UUID版本5 (我的命名空间).
  • PDF 生成 (生成Pdf函数):**
  • 使用 fetch 调用 API 端点 (/api/pdf-uuid) 带查询参数 (v4, v5, c)* 将响应下载为 Blob,创建其 URL,并生成下载链接 ( 元素).

      * 将链接附加到DOM,点击它以启动下载,然后从DOM中删除它。
    • 事件处理 (handleChange 函数):

      • 当用户在输入字段中键入时更新文本状态。
    1. Render 方法:

      • 返回组件 UI 结构的 JSX:
  • 包含一个标题 (头), 主要部分 (
    )以及显示UUID和用户交互输入字段的各种段落。
  • generatePdf函数绑定到按钮点击事件以触发PDF生成。

  • CSS 样式在本地定义。 (
    现在你已经下载了 IronPDF
    想在真实项目中免费部署 IronPDF 吗?
    还不准备购买吗?

    想要免费将IronPDF部署到实际项目中吗?

    包含哪些内容?
    在生产中测试无水印
    30天全功能产品
    试用期间提供24/5技术支持
获取您的免费 30天试用密钥 立即。
谢谢。
如果您希望与我们的许可团队联系:

有问题吗? 联系我们 与我们的开发团队合作。
无需信用卡或创建账户