跳過到頁腳內容
NODE 說明

uuid NPM(開發者的使用方法)

UUID (通用唯一識別碼)套件是一個流行的 NPM(Node 套件管理器)函式庫,用於在JavaScript應用程式中產生通用唯一識別碼 (UUID)。 UUID 可用於在資料庫中建立唯一鍵、會話識別碼等等。 本文稍後也將介紹Iron Software出品的 PDF 產生Node.js套件IronPDF 。 這兩個庫都可以用來產生資料庫的唯一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
npm install uuid
SHELL

或者

yarn add uuid
yarn add uuid
SHELL

基本用法

以下是如何使用 uuid 套件產生 UUID 字串:

// Imp或者t syntax f或者 uuid library
imp或者t { v4 as uuidv4 } from 'uuid';
// Generate a random UUID v4
const myUUID = uuidv4();
console.log(myUUID); // Example valid uuid: '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
// Imp或者t syntax f或者 uuid library
imp或者t { 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 語法:

// Imp或者t 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'
// Imp或者t 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:

imp或者t { 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'
imp或者t { 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 的函數:

imp或者t { 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 ]
imp或者t { 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的 npm 包,即可輕鬆整合到您的Node.js應用程式中。 該 API 文件齊全,可以輕鬆地將 PDF 生成功能整合到您的專案中。

安裝

若要安裝IronPDF NPM 包,請使用下列命令:

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

使用IronPDF產生 PDF 文件並使用 UUID NPM 包

UUID 可以在應用程式的許多地方使用。 它是應用程式中一個非常基礎的組成部分。 UUID 可用作加密資料的金鑰,這些金鑰可以儲存在 PDF 文件中以進行存檔。 下面我們將看到一個範例,其中我們產生不同版本的 UUID 並將它們記錄在 PDF 文件中,使用IronPDF。

安裝依賴項:首先,使用以下命令建立一個新的 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"
SHELL

接下來,導航到您的專案目錄:

cd uuid-pdf
cd uuid-pdf
SHELL

安裝所需軟體包:

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

建立 PDF

現在,讓我們建立一個使用IronPDF產生 PDF 的簡單範例。

PDF 產生 API:第一步是建立後端 API 來產生 PDF 文件。 由於IronPDF只能在伺服器端運行,我們需要建立一個 API,以便在使用者想要產生 PDF 時呼叫。 在路徑 pages/api/pdf.js 處建立文件,並新增以下內容。

IronPDF需要許可證密鑰,您可以從許可證頁面獲取並將其放入以下程式碼中。

// pages/api/pdf.js
imp或者t { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
imp或者t { validate as uuidValidate } from 'uuid';

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";

exp或者t 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 f或者 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 (err或者) {
    console.err或者("Err或者 generating PDF:", err或者);
    res.status(500).end();
  }
}
// pages/api/pdf.js
imp或者t { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
imp或者t { validate as uuidValidate } from 'uuid';

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Your license key";

exp或者t 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 f或者 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 (err或者) {
    console.err或者("Err或者 generating PDF:", err或者);
    res.status(500).end();
  }
}
JAVASCRIPT

現在修改 index.js 程式碼如下,以使用 UUID 和IronPDF。

imp或者t Head from "next/head";
imp或者t styles from "../styles/Home.module.css";
imp或者t React, { useState } from "react";
imp或者t { v4 as uuidv4, v5 as uuidv5, validate as uuidValidate } from 'uuid';

exp或者t default function Home() {
  const [text, setText] = useState("");

  // Generate UUIDs f或者 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 (err或者) {
      console.err或者("Err或者 generating PDF:", err或者);
    }
  };

  // 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: b或者der-box;
        }
      `}</style>
    </div>
  );
}
imp或者t Head from "next/head";
imp或者t styles from "../styles/Home.module.css";
imp或者t React, { useState } from "react";
imp或者t { v4 as uuidv4, v5 as uuidv5, validate as uuidValidate } from 'uuid';

exp或者t default function Home() {
  const [text, setText] = useState("");

  // Generate UUIDs f或者 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 (err或者) {
      console.err或者("Err或者 generating PDF:", err或者);
    }
  };

  // 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: b或者der-box;
        }
      `}</style>
    </div>
  );
}
JAVASCRIPT

程式碼解釋

1.導​​入和初始設定:

  • Head 來自 next/head: 用於修改 HTML 文件的 <head> 以設定標題和網站圖示。
  • styles../styles/Home.module.css: 為元件匯入本機 CSS 樣式。
  • React, useState: React hooks 用於狀態管理。
  • uuidv4, uuidv5, uuidValidate: 從 UUID 套件導入的用於 UUID 產生、驗證和解析的函數。

2.組件功能:

-狀態管理:

 - `useState`: 管理使用者輸入 UUID 的文字輸入欄位的狀態。
 - `text`: 狀態變量,保存輸入欄位的目前值。
  • UUID 產生:

    • uuidv4(): 產生隨機 UUID 版本 4。
    • MY_NAMESPACEuuidv5('IronPDF', MY_NAMESPACE): 根據給定的命名空間產生 UUID 版本 5。
  • PDF 產生(generatePdf 功能):

    • 使用 fetch 呼叫 API 端點 (/api/pdf-uuid),並附有查詢參數 (v4, v5, c)。
    • 將回應下載為 blob,為其建立 URL,並產生下載連結(<a> 元素)。
    • 將連結新增至 DOM 中,點擊該連結開始下載,然後將其從 DOM 移除。

    -事件處理(handleChange 函數):

    • 當使用者在輸入欄位中輸入內容時,更新 text 狀態。

3.渲染方法:

  • 傳回元件 UI 結構的 JSX:
    • 包括標題(<main>)以及顯示 UUID 和使用者互動輸入欄位的各種段落。
    • generatePdf 函數綁定到按鈕點擊以觸發 PDF 生成。
  • CSS 樣式使用 Next.js 的 styled-jsx 在本地 (<style jsx>) 和全域 (<style jsx global>) 定義。

輸出

uuid NPM(開發者使用方法):圖 2

PDF

uuid NPM(開發者使用方法):圖 3

IronPDF許可

IronPDF需要許可證密鑰才能運作。 IronPDF npm 提供免費試用許可證金鑰,使用戶能夠在購買前體驗其豐富的功能。

請在此輸入許可證密鑰:

imp或者t { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
imp或者t { 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 文件中進行存檔。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me