節點幫助

uuid NPM (對開發者而言如何運作)

發佈 2024年8月13日
分享:

介紹 UUID (全域唯一識別碼) 封裝是受歡迎的 NPM (節點套件管理器) 用於生成全域唯一識別碼的庫 (UUIDs) 在 JavaScript 應用程式中。UUID 在創建資料庫中的唯一鍵、會話識別碼等方面非常有用。稍後在本文中,我們還將探討 IronPDF 來自 的 PDF 生成 Node.js 套件 IronSoftware這兩個庫皆可用於生成資料庫的唯一ID,並且生成的UUID可以以PDF格式儲存以作存檔之用。

主要功能

  1. RFC4122 合規性:UUID 套件支援創建符合 RFC4122 的 UUID,確保它們是全局唯一且標準化的。

  2. 多種 UUID 版本:它支持多種版本的 UUID,包括:

    • v1:基於時間戳的 UUID。
    • v3:使用 MD5 哈希的基於命名空間的 UUID。
    • v4:隨機生成的 UUID。
    • v5:使用 SHA-1 哈希的基於命名空間的 UUID。
    • v6:具有重新排序字段的基於時間戳的 UUID,以改善排序。13. 跨平台支持:該套件可在不同環境中使用,包括 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,適合各種開發環境。

簡易整合

輕鬆將 IronPDF 整合到您的 Node.js 應用程式中,使用其 npm 套件。這個 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 僅在服務器端運行,我們需要創建一個 API 當用戶想要生成 PDF 時進行呼叫。在路徑 pages/api/pdf.js 中創建一個文件並添加以下內容。

IronPDF 需要一個許可密鑰,您可以從 授權頁面 ```html <!DOCTYPE html>

Iron Software Products

Iron Software 產品

技術和產品描述

IronPDF 是一個功能強大的.NET PDF庫,使得生成和編輯PDF文件變得簡單。無論您使用的是C#、VB.NET還是JavaScript,IronPDF都能滿足您的需求。

IronOCR 是一個領先的.NET光學字符識別庫,能夠準確地將圖像轉換為可編輯的文本。這個工具對於需要處理大量掃描文件的開發人員來說非常有用。

IronXL 提供了一個強大的Excel讀取和寫入庫,簡化了處理Excel文件的流程。無論是讀取、修改還是生成,IronXL都能夠輕鬆完成。

IronBarcode and IronQR 能夠快速生成和讀取條形碼和二維碼,適合各種應用場景。

IronZIP 是一個.NET庫,用於創建、編輯和提取ZIP文件,支持高效的文件壓縮和解壓。

IronWord 提供了一個靈活的工具來生成、編輯和閱讀Word文件。它支持所有的Word格式,使得文檔處理變得簡單和可靠。

IronPrint 是一個強大的打印庫,能夠輕鬆地從任何.NET應用程序進行打印操作。

IronWebscraper 是一個方便的工具,可以從Web頁面中提取數據,適用於數據收集和分析。

Iron Suite 包含了所有的Iron Software工具包,提供全面的解決方案,以滿足您的所有需求。


```cs
// 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();
    }
  }

現在將 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. 導入和初始設定:

    • Head from next/head: 用於修改

      設定 HTML 文檔的標題和收藏夾圖標。

      • import styles from "../styles/Home.module.css": 導入組件的本地 CSS 樣式。

      • React, useState, useEffect: 用於狀態管理和副作用的基本 React 鉤子。

      • uuidv4, uuidv5, uuidValidate, uuidParse: 從 UUID 包中導入的函數,用於 UUID 生成、驗證和解析。
    1. 組件功能:

      • 狀態管理:

        • useState: 管理用戶輸入 UUID 的文本輸入字段的狀態。

        • text: 儲存當前輸入字段值的狀態變數。
      • UUID 生成:
      • uuidv4()產生隨機的 UUID version 4。
      • MY_NAMESPACE 和 uuidv5('IronPDF', 我的_命名空間):根據指定的命名空間生成版本5的UUID (我的命名空間).

      • PDF 生成 (generatePdf 函數):

        • 使用 fetch 來調用 API 端點 (/api/pdf-uuid) 附帶查詢參數 (v4, v5, c)* 下載回應作為BLOB,為其創建URL,並生成下載鏈接 ( 元素).

        • 將連結附加到DOM,點擊它以啟動下載,然後從DOM中移除它。
      • 事件處理 (handleChange 函數)更新使用者在輸入欄位輸入文字時的文字狀態。

呈現方法:

  • 回傳這個元件 UI 結構的 JSX:

    • 包含一個標題 (頭部),主要部分 (

      ), 以及顯示UUID和用戶交互輸入字段的各種段落。

      • generatePdf函數綁定於按鈕點擊以觸發PDF生成。
      • CSS樣式在本地定義 (
        現在您已經下載了IronPDF
        想要免費將IronPDF部署到實際項目中嗎?
        還沒準備好購買嗎?

        想將 IronPDF 部署到現實專案中免費使用嗎?

        包含哪些內容?
        在生產環境中測試而無浮水印
        30天全功能產品
        試用期間提供 24/5 技術支援
獲取你的免費 30天試用序號 立即。
謝謝。
如果您想與我們的授權團隊聯絡:

有問題嗎? 聯繫我們 與我們的開發團隊合作。
不需要信用卡或帳戶註冊