uuid NPM(開發者的使用方法)
這個UUID(全球唯一識別碼)套件是用於在JavaScript應用中生成全球唯一識別碼(UUIDs)的一個流行NPM(Node Package Manager)程式庫。 UUIDs對於在資料庫中建立唯一鍵、會話識別碼等非常有用。 本文稍後我們還將探討IronPDF,這是Iron Software提供的一個PDF生成Node.js套件。 這兩個程式庫都可以用於生成資料庫的唯一ID,生成的UUID可以以PDF格式儲存用於歸檔目的。
主要功能
- RFC4122的合規性: UUID套件支持建立符合RFC4122的UUID,確保它們為全球唯一且標準化。
多版本UUID: 它支持各種版本的UUID,包括:
- v1: 基於時間戳的UUID。
- v3: 使用MD5哈希的基於命名空間的UUID。
- v4: 隨機生成的UUID。
- v5: 使用SHA-1哈希的基於命名空間的UUID。
- v6: 重排字段以改善排序的基於時間戳的UUID1。
- 跨平台支持: 該套件可以在不同環境中運行,包括Node.js、React Native和現代網頁瀏覽器。
- 零依賴: 它體積小,沒有依賴性,使其輕量且易於整合到專案中。
- 密碼學強度: 生成的UUID具有密碼學強度,確保高度安全。
安裝
要安裝uuid套件,可以使用以下任一命令:
npm install uuidnpm install uuidor
yarn add uuidyarn add uuid基本用法
以下是如何使用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'或者,使用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'// 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'進階功能
- 基於命名空間的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'- 驗證和解析: 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 ]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,適合多種開發環境。
簡單整合
using npm 套件輕鬆將 IronPDF 整合到您的 Node.js 應用中。 API 文件完善,便於在您的專案中加入 PDF 生成功能。
安裝
要安裝IronPDF NPM套裝,請使用以下命令:
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64使用IronPDF生成PDF文件並使用UUID NPM套件
UUID可以在應用的許多地方使用。 它是應用的一個非常基本的部分。 UUID可用作加密資料的密鑰,這些密鑰可儲存在PDF文件中用於歸檔目的。 下面,我們將看到一個範例,生成不同版本的UUID並使用IronPDF將其記錄在PDF文件中。
安裝依賴項: 首先,使用以下命令建立一個新的Next.js專案(如果尚未建立)。 Refer here.
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"接下來,導航至您的專案目錄:
cd uuid-pdfcd uuid-pdf安裝所需的套件:
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add uuidyarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add uuid建立 PDF
現在,讓我們建立一個使用 IronPDF 生成PDF的簡單範例。
PDF生成API:第一步是建立一個後端API來生成PDF文件。 由於IronPDF僅運行在伺服器端,我們需要建立一個使用者在需要生成PDF時調用的API。 在位置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();
}
}// 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();
}
}現在修改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>
);
}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>
);
}程式碼解釋
導入和初始設置:
<head>以設置標題和favicon。../styles/Home.module.css:導入組件的本地CSS樣式。useState:用於狀態管理的React鉤子。uuidValidate:從UUID套件導入的函式,用於UUID生成、驗證和解析。
組件功能:
狀態管理:
useState:管理使用者輸入UUID的文字輸入框的狀態。text:保存輸入框當前值的狀態變數。
UUID生成:
uuidv4():生成隨機的UUID版本4。uuidv5('IronPDF', MY_NAMESPACE):基於給定命名空間生成UUID版本5。
PDF生成(
generatePdf函式):- 使用
/api/pdf-uuid)。 - 將響應下載為blob,為其建立URL,並生成一個下載連結(
<a>元素)。 - 將連結附加到DOM,點擊以啟動下載,然後從DOM中移除。
- 使用
事件處理(
handleChange函式):- 當使用者在輸入框中鍵入時更新
text狀態。
- 當使用者在輸入框中鍵入時更新
渲染方法:
- 返回組件UI結構的JSX:
- 包括標題(
)和用於使用者交互的顯示UUID和輸入框的各種段落。 generatePdf函式綁定到按鈕點擊以觸發PDF生成。
- 包括標題(
- 使用Next.js的styled-jsx本地(
)定義CSS樣式。
- 返回組件UI結構的JSX:
輸出


IronPDF 授權
IronPDF依賴於授權金鑰運行。 IronPDF npm提供免費試用授權金鑰,讓使用者在購買前試用其豐富功能。
請在此處放置授權金鑰:
import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
import { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
結論
UUID NPM套件是在JavaScript應用中生成唯一識別符的強大而多功能的工具。 其支持多版本的UUID、跨平台相容性和密碼學強度,使其成為需要唯一識別符的開發者不可或缺的程式庫。
IronPDF使Node.js開發者能夠提升其應用中的PDF處理能力,提供無與倫比的功能性、可靠性和性能。 通過利用IronPDF的先進功能進行PDF生成、轉換和操作,開發人員可以順利簡化文件工作流程,提升使用者體驗,並滿足多樣的業務需求。
採用IronPDF解鎖Node.js專案中PDF處理的全部潛力,輕鬆交付專業級文件解決方案。 另一方面,UUID NPM套件可以用於每次需要加密資料時生成唯一ID。 這些密鑰可以使用IronPDF儲存在PDF中用於歸檔目的。







