uuid NPM (jak to działa dla programistów)
Pakiet UUID (universally unique identifier) to popularna biblioteka NPM (Node Package Manager) służąca do generowania uniwersalnych identyfikatorów (UUID) w aplikacjach JavaScript. Identyfikatory UUID są przydatne do tworzenia unikalnych kluczy w bazach danych, identyfikatorów sesji i nie tylko. Później w tym artykule przyjrzymy się również IronPDF, pakietowi Node.js do generowania PDF od Iron Software. Obie te biblioteki można wykorzystać do generowania unikalnych identyfikatorów dla baz danych, a wygenerowane identyfikatory UUID można przechowywać w formacie PDF w celu archiwizacji.
Najważniejsze cechy
- Zgodność z RFC4122: Pakiet UUID obsługuje tworzenie identyfikatorów UUID zgodnych z RFC4122, zapewniając ich uniwersalną unikalność i standaryzację.
Wiele wersji UUID: Obsługuje różne wersje identyfikatorów UUID, w tym:
- v1: UUID oparte na znacznikach czasu.
- v3: UUID oparte na przestrzeniach nazw, wykorzystujące haszowanie MD5.
- v4: Losowo generowane identyfikatory UUID.
- v5: UUID oparte na przestrzeniach nazw wykorzystujące haszowanie SHA-1.
- v6: UUID oparte na znacznikach czasu z przetasowanymi polami w celu usprawnienia sortowania1.
- Obsługa wielu platform: Pakiet działa w różnych środowiskach, w tym w Node.js, React Native i nowoczesnych przeglądarkach internetowych.
- Brak zależności: Zajmuje niewiele miejsca i nie ma żadnych zależności, dzięki czemu jest lekki i łatwy do zintegrowania z projektami.
- Silne kryptograficznie: Generowane identyfikatory UUID są silne kryptograficznie, co zapewnia wysokie bezpieczeństwo.
Instalacja
Aby zainstalować pakiet uuid, użyj jednego z poniższych poleceń:
npm install uuidnpm install uuidor
yarn add uuidyarn add uuidPodstawowe zastosowanie
Oto jak wygenerować ciągi UUID przy użyciu pakietu 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'Alternatywnie, przy użyciu składni 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'Zaawansowane funkcje
- UUID oparte na przestrzeni nazw: Można tworzyć identyfikatory UUID na podstawie przestrzeni nazw i nazwy, korzystając z wersji 3 lub wersji 5:
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'- Walidacja i parsowanie: Pakiet UUID udostępnia również funkcje do walidacji i parsowania identyfikatorów 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 ]Wprowadzenie do IronPDF

IronPDF to popularna biblioteka do generowania plików PDF, służąca do tworzenia, edycji i konwersji dokumentów PDF. Pakiet IronPDF NPM został zaprojektowany specjalnie dla aplikacji Node.js. Oto kilka kluczowych funkcji i szczegółów dotyczących pakietu IronPDF NPM:
Najważniejsze cechy
Konwersja HTML do PDF
Z łatwością konwertuj treści HTML na dokumenty PDF. Ta funkcja jest szczególnie przydatna do generowania dynamicznych plików PDF na podstawie treści internetowych.
Konwersja adresów URL do formatu PDF
Generuj pliki PDF bezpośrednio z adresów URL, co pozwala na przechwytywanie treści stron internetowych i zapisywanie ich jako pliki PDF za pomocą kodu.
Manipulacja plikami PDF
Z łatwością scałaj, dziel i edytuj istniejące dokumenty PDF. IronPDF oferuje takie funkcje, jak dodawanie stron, dzielenie dokumentów i wiele innych.
Zabezpieczenia plików PDF
Zabezpiecz swoje dokumenty PDF, szyfrując je hasłami lub stosując podpisy cyfrowe. IronPDF oferuje opcje ochrony poufnych dokumentów przed nieuprawnionym dostępem.
Wysoka jakość tłumaczenia
Tworzenie wysokiej jakości dokumentów PDF z precyzyjnym renderowaniem tekstu, obrazów i formatowania. IronPDF gwarantuje, że wygenerowane pliki PDF zachowują wierność oryginalnej treści.
Kompatybilność międzyplatformowa
IronPDF jest kompatybilny z różnymi platformami, w tym Windows, Linux i macOS, dzięki czemu nadaje się do szerokiego zakresu środowisk programistycznych.
Prosta integracja
Z łatwością zintegruj IronPDF ze swoimi aplikacjami Node.js, korzystając z pakietu npm. API jest dobrze udokumentowane, co ułatwia włączenie funkcji generowania plików PDF do projektów.
Instalacja
Aby zainstalować pakiet IronPDF NPM, użyj następującego polecenia:
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64Generowanie dokumentu PDF przy użyciu IronPDF i pakietu UUID NPM
Identyfikatory UUID mogą być wykorzystywane w wielu miejscach w aplikacji. To bardzo podstawowa część aplikacji. Identyfikatory UUID mogą służyć jako klucze do zaszyfrowanych danych, a klucze te można przechowywać w dokumentach PDF w celach archiwizacyjnych. Poniżej przedstawimy przykład, w którym generujemy różne wersje identyfikatorów UUID i dokumentujemy je w pliku PDF przy użyciu biblioteki IronPDF.
Zainstaluj zależności: Najpierw utwórz nowy projekt Next.js (jeśli jeszcze tego nie zrobiłeś) za pomocą poniższego polecenia. Zobacz tutaj.
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"Następnie przejdź do katalogu projektu:
cd uuid-pdfcd uuid-pdfZainstaluj wymagane pakiety:
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add uuidyarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
yarn add uuidUtwórz plik PDF
Teraz stwórzmy prosty przykład generowania pliku PDF przy użyciu IronPDF.
API do generowania plików PDF: Pierwszym krokiem jest stworzenie backendowego API do generowania dokumentów PDF. Ponieważ IronPDF działa wyłącznie po stronie serwera, musimy stworzyć API, które będzie wywoływane, gdy użytkownik zechce wygenerować plik PDF. Utwórz plik w ścieżce pages/api/pdf.js i dodaj poniższe treści.
IronPDF wymaga klucza licencyjnego, który można uzyskać na stronie licencji i umieścić w poniższym kodzie.
// 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();
}
}Teraz zmodyfikuj kod index.js jak poniżej, aby użyć UUID i 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>
);
}Wyjaśnienie kodu
Importy i konfiguracja początkowa:
Headznext/head: Używany do modyfikacji<head>dokumentu HTML, aby ustawić tytuł i favicon.stylesz../styles/Home.module.css: Importuje lokalne style CSS dla komponentu.React,useState: React hooks do zarządzania stanem.uuidv4,uuidv5,uuidValidate: Funkcje importowane z pakietu UUID do generowania, walidacji i parsowania UUID.
Funkcjonalność komponentów:
Zarządzanie stanem:
useState: Zarządza stanem pola wejściowego tekstu, gdzie użytkownik wpisuje UUID.text: Zmienna stanu przechowująca bieżącą wartość pola wejściowego.
Generowanie identyfikatorów UUID:
uuidv4(): Generuje losowy UUID wersji 4.MY_NAMESPACEiuuidv5('IronPDF', MY_NAMESPACE): Generuje UUID wersji 5 na podstawie podanej przestrzeni nazw.
Generowanie PDF (
generatePdffunkcja):- Używa
fetchdo wywołania punktu końcowego API (/api/pdf-uuid) z parametrami zapytania (v4,v5,c). - Pobiera odpowiedź jako blob, tworzy dla niej URL i generuje link do pobrania (element
<a>). - Dodaje link do DOM, klika go, aby zainicjować pobieranie, a następnie usuwa go z DOM.
- Używa
Obsługa zdarzeń (
handleChangefunkcja):- Aktualizuje stan
text, gdy użytkownik wpisuje do pola wejściowego.
- Aktualizuje stan
Metoda renderowania:
- Zwraca JSX dla struktury interfejsu użytkownika komponentu:
- Zawiera tytuł (
Head), główną sekcję () oraz różne paragrafy wyświetlające UUID i pole wejściowe do interakcji z użytkownikiem. - Funkcja
generatePdfjest powiązana z kliknięciem przycisku do wyzwalania generowania PDF.
- Zawiera tytuł (
- Style CSS są zdefiniowane lokalnie (
) i globalnie () za pomocą styled-jsx Next.js.
- Zwraca JSX dla struktury interfejsu użytkownika komponentu:
Wynik


Licencja IronPDF
IronPDF działa na podstawie klucza licencyjnego. IronPDF npm oferuje bezpłatną licencję próbną, aby umożliwić użytkownikom zapoznanie się z jego rozbudowanymi funkcjami przed zakupem.
Umieść tutaj klucz licencyjny:
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";
Wnioski
Pakiet UUID NPM to solidne i wszechstronne narzędzie do generowania unikalnych identyfikatorów w aplikacjach JavaScript. Obsługa wielu wersji UUID, kompatybilność międzyplatformowa oraz siła kryptograficzna sprawiają, że jest to niezbędna biblioteka dla programistów potrzebujących unikalnych identyfikatorów.
IronPDF umożliwia programistom Node.js zwiększenie możliwości obsługi plików PDF w ich aplikacjach, oferując niezrównaną funkcjonalność, niezawodność i wydajność. Wykorzystując zaawansowane funkcje IronPDF do generowania, konwersji i edycji plików PDF, programiści mogą usprawnić przepływ dokumentów, poprawić komfort użytkowania i z pewnością spełnić różnorodne wymagania biznesowe.
Wykorzystaj IronPDF, aby w pełni wykorzystać możliwości obsługi plików PDF w swoich projektach Node.js i bez wysiłku dostarczać profesjonalne rozwiązania w zakresie dokumentów. Z drugiej strony, pakiet UUID NPM może być używany do generowania unikalnych identyfikatorów za każdym razem, gdy są one wymagane do szyfrowania danych. Te tajne klucze można przechowywać w plikach PDF przy użyciu IronPDF do celów archiwizacji.







