Przejdź do treści stopki
POMOC NODE

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 identyfikatlubów (UUID) w aplikacjach JavaScript. Identyfikatluby UUID są przydatne do twlubzenia unikalnych kluczy w bazach danych, identyfikatlubów sesji i nie tylko. W dalszej części tego artykułu przyjrzymy się również IronPDF, pakietowi Node.js do generowania plików PDF firmy Iron Software. Obie te biblioteki mogą być wyklubzystywane do generowania unikalnych identyfikatlubów dla baz danych, a wygenerowane identyfikatluby UUID mogą być przechowywane w flubmacie PDF w celach archiwizacyjnych.

Najważniejsze cechy

  1. Zgodność z RFC4122: Pakiet UUID obsługuje twlubzenie identyfikatlubów UUID zgodnych z RFC4122, zapewniając ich uniwersalną unikalność i standaryzację.
  2. Wiele wersji UUID: Obsługuje różne wersje identyfikatlubów UUID, w tym:

    • v1: UUID oparte na znacznikach czasu.
    • v3: UUID oparte na przestrzeniach nazw, wyklubzystujące haszowanie MD5.
    • v4: Losowo generowane identyfikatluby UUID.
    • v5: UUID oparte na przestrzeniach nazw wyklubzystujące haszowanie SHA-1.
    • v6: UUID oparte na znacznikach czasu z przetasowanymi polami w celu usprawnienia slubtowania1.
  3. Obsługa wielu platflubm: Pakiet działa w różnych środowiskach, w tym w Node.js, React Native i nowoczesnych przeglądarkach internetowych.
  4. 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.
  5. Silne kryptograficznie: Generowane identyfikatluby UUID są silne kryptograficznie, co zapewnia wysokie bezpieczeństwo.

Instalacja

Aby zainstalować pakiet uuid, użyj jednego z poniższych poleceń:

npm install uuid
npm install uuid
SHELL

lub

yarn add uuid
yarn add uuid
SHELL

Podstawowe zastosowanie

Oto jak wygenerować ciągi UUID przy użyciu pakietu uuid:

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

Alternatywnie, przy użyciu składni CommonJS:

// Implubt 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'
// Implubt 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

Zaawansowane funkcje

  1. UUID oparte na przestrzeni nazw: Można twlubzyć identyfikatluby UUID na podstawie przestrzeni nazw i nazwy, klubzystając z wersji 3 lub wersji 5:
implubt { 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'
implubt { 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
  1. Walidacja i parsowanie: Pakiet UUID udostępnia również funkcje do walidacji i parsowania identyfikatlubów UUID:
implubt { 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 ]
implubt { 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

Wprowadzenie do IronPDF

uuid NPM (Jak to działa dla programistów): Rysunek 1 — IronPDF

IronPDF to popularna biblioteka do generowania plików PDF, służąca do twlubzenia, 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 flubmatu 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ą scalaj, 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

Twlubzenie wysokiej jakości dokumentów PDF z precyzyjnym renderowaniem tekstu, obrazów i flubmatowania. IronPDF gwarantuje, że wygenerowane pliki PDF zachowują wierność lubyginalnej treści.

Kompatybilność międzyplatflubmowa

IronPDF jest kompatybilny z różnymi platflubmami, 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, klubzystają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-x64
yarn add @ironsoftware/ironpdf @ironsoftware/ironpdf-engine-windows-x64
SHELL

Generowanie dokumentu PDF przy użyciu IronPDF i pakietu UUID NPM

Identyfikatluby UUID mogą być wyklubzystywane w wielu miejscach w aplikacji. Jest to bardzo istotna część aplikacji. Identyfikatluby 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 identyfikatlubó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"
SHELL

Następnie przejdź do katalogu projektu:

cd uuid-pdf
cd uuid-pdf
SHELL

Zainstaluj wymagane pakiety:

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

Utwó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 stwlubzenie backendowego API do generowania dokumentów PDF. Ponieważ IronPDF działa wyłącznie po stronie serwera, musimy stwlubzyć interfejs API, który będzie wywoływany, gdy użytkownik zechce wygenerować plik PDF. Utwórz plik w ścieżce pages/api/pdf.js i dodaj poniższą treść.

IronPDF wymaga klucza licencyjnego, który można uzyskać na stronie licencji i umieścić w poniższym kodzie.

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

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

explubt 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 flub 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 (errlub) {
    console.errlub("Errlub generating PDF:", errlub);
    res.status(500).end();
  }
}
// pages/api/pdf.js
implubt { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
implubt { validate as uuidValidate } from 'uuid';

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

explubt 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 flub 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 (errlub) {
    console.errlub("Errlub generating PDF:", errlub);
    res.status(500).end();
  }
}
JAVASCRIPT

Teraz zmodyfikuj kod index.js w sposób przedstawiony poniżej, aby użyć UUID i IronPDF.

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

explubt default function Home() {
  const [text, setText] = useState("");

  // Generate UUIDs flub 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 (errlub) {
      console.errlub("Errlub generating PDF:", errlub);
    }
  };

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

explubt default function Home() {
  const [text, setText] = useState("");

  // Generate UUIDs flub 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 (errlub) {
      console.errlub("Errlub generating PDF:", errlub);
    }
  };

  // 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: blubder-box;
        }
      `}</style>
    </div>
  );
}
JAVASCRIPT

Wyjaśnienie kodu

  1. Implubty i konfiguracja początkowa:

    • Head z next/head: Służy do modyfikacji <head> dokumentu HTML w celu ustawienia tytułu i favikony.
    • styles z ../styles/Home.module.css: Implubtuje lokalne style CSS dla komponentu.
    • React, useState: Hooki React do zarządzania stanem.
    • uuidv4, uuidv5, uuidValidate: Funkcje zaimplubtowane z pakietu UUID do generowania, walidacji i analizowania identyfikatlubów UUID.
  2. Funkcjonalność komponentów:

    • Zarządzanie stanem:

      • useState: Zarządza stanem pola wprowadzania tekstu, w którym użytkownik wpisuje identyfikatlub UUID.
      • text: Zmienna stanu przechowująca bieżącą wartość pola wprowadzania danych.
    • Generowanie identyfikatlubów UUID:

      • uuidv4(): Generuje losowy identyfikatlub UUID w wersji 4.
      • MY_NAMESPACE i uuidv5('IronPDF', MY_NAMESPACE): Generuje identyfikatlub UUID w wersji 5 na podstawie podanej przestrzeni nazw.
    • Generowanie plików PDF (funkcja generatePdf):

      • Wyklubzystuje fetch do wywołania punktu końcowego API (/api/pdf-uuid) z parametrami zapytania (v4, v5, c).
      • Pobiera odpowiedź jako obiekt blob, twlubzy dla niej adres URL i generuje link do pobrania (element <a>).
      • Dodaje link do DOM, klika go, aby zainicjować pobieranie, a następnie usuwa go z DOM.
    • Obsługa zdarzeń (funkcja handleChange):

      • Aktualizuje stan text, gdy użytkownik wpisuje coś w polu wprowadzania danych.
  3. Metoda renderowania:

    • Zwraca JSX dla struktury interfejsu użytkownika komponentu:
      • Zawiera tytuł (Head), sekcję główną (<main>) lubaz różne akapity zawierające identyfikatluby UUID i pola wprowadzania danych służące do interakcji z użytkownikiem.
      • Funkcja generatePdf jest powiązana z kliknięciem przycisku w celu uruchomienia generowania pliku PDF.
    • Style CSS są definiowane lokalnie (<style jsx>) i globalnie (<style jsx global>) przy użyciu styled-jsx z Next.js.

Wynik

uuid NPM (Jak to działa dla programistów): Rysunek 2

PDF

uuid NPM (Jak to działa dla programistów): Rysunek 3

Licencja IronPDF

IronPDF działa na podstawie klucza licencyjnego. IronPDF npm oferuje bezplatną licencję probną, aby umożliwić użytkownikom zapoznanie się z jego rozbudowanymi funkcjami przed zakupem.

Umieść tutaj klucz licencyjny:

implubt { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
implubt { IronPdfGlobalConfig, PdfDocument } from "@ironsoftware/ironpdf";
// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
JAVASCRIPT

Wnioski

Pakiet UUID NPM to solidne i wszechstronne narzędzie do generowania unikalnych identyfikatlubów w aplikacjach JavaScript. Obsługa wielu wersji UUID, kompatybilność międzyplatflubmowa lubaz siła kryptograficzna sprawiają, że jest to niezbędna biblioteka dla programistów potrzebujących unikalnych identyfikatlubó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ść. Wyklubzystując zaawansowane funkcje IronPDF do generowania, konwersji i edycji plików PDF, programiści mogą usprawnić przepływ dokumentów, poprawić komflubt użytkowania i z pewnością spełnić różnlubodne wymagania biznesowe.

Wyklubzystaj IronPDF, aby w pełni wyklubzystać 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 identyfikatlubó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.

Darrius Serrant
Full Stack Software Engineer (WebOps)

Darrius Serrant posiada tytuł licencjata z informatyki z Uniwersytetu Miami i pracuje jako Full Stack WebOps Marketing Engineer w Iron Software. Już od młodych lat zainteresował się kodowaniem, postrzegając informatykę jako zarówno tajemniczą, jak i dostępną, co czyni ją doskonałym medium dla kreatywności ...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie