节点帮助

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

发布 2024年八月13日
分享:

介绍

"(《世界人权宣言》)UUID (全局唯一标识符)包是一个流行的NPM(节点软件包管理器)用于生成通用唯一标识符的库(UUIDs)在 JavaScript 应用程序中。 UUID 在创建数据库中的唯一键、会话标识符等方面非常有用。 稍后在本文中,我们还将探讨IronPDF一个用于生成PDF的Node.js包来自 铁软件(Iron Software). 这两个库都可以用来生成数据库的唯一ID,并且生成的UUID可以以PDF格式存储用于归档目的。

主要功能

  1. RFC4122 合规性:UUID 包支持创建符合 RFC4122 标准的 UUID,确保它们是通用唯一和标准化的。

    1. 多种UUID版本:支持多种UUID版本,包括:

      • v1:基于时间戳的UUID。

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

      • v4:随机生成的UUID。

      • v5:基于命名空间使用SHA-1哈希的UUID。
    • v6:基于时间戳的UUID,具有重新排序的字段以改善排序功能1.
  2. 跨平台支持:该软件包可在不同环境中运行,包括Node.js、React Native和现代网络浏览器。

  3. 零依赖:它具有很小的内存占用且没有依赖项,使其轻量且易于集成到项目中。

  4. 加密强度:生成的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 文档中用于存档目的。 下面,我们将看到一个示例,展示如何使用IronPDF生成不同版本的UUID并将其记录在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:第一步是创建生成 PDF 文档的后台 API。 由于IronPDF只在服务器端运行,我们需要创建一个API,以便在用户想生成PDF时调用。 在 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 文档中的 <head> 元素用于设置标题和网站图标。

    • 从"../styles/Home.module.css"导入样式:为组件导入本地CSS样式。

    • React、useState、useEffect:用于状态管理和副作用的基本 React 钩子。
    • uuidv4, uuidv5, uuidValidate, uuidParse:从UUID包中导入的用于UUID生成、验证和解析的函数。
  2. 组件功能:

    • 状态管理:

      • useState:管理用户输入UUID的文本输入字段的状态。

      • 文本:状态变量保存输入字段的当前值。

        • 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 函数):**

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

    • 返回组件 UI 结构的 JSX:

      • 包含标题(头), 主要部分(

        ),和用于用户交互的各种显示UUID的段落和输入字段。

      • generatePdf 函数绑定到按钮点击事件以触发 PDF 生成。
      • CSS 样式在本地定义。(
        现在你已经下载了 IronPDF
        想在真实项目中免费部署 IronPDF 吗?
        还不准备购买吗?

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

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

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