Przejdź do treści stopki
POMOC NODE

fs extra npm (Jak to działa dla programistów)

Node.js to solidne środowisko uruchomieniowe JavaScript, które zrewolucjonizowało programowanie po stronie serwera, zapewniając wydajne i skalowalne środowisko tworzenia aplikacji. Spośród wielu pakietów Node.js dostępnych dla programistów, fs-extra i IronPDF wyróżniają się zaawansowanymi możliwościami obsługi plików i tworzenia plików PDF.

fs-extra to ulepszona wersja natywnego modułu Node fs. Oferuje bardziej przyjazny dla użytkownika interfejs API oraz dodatkowe metody do operacji na plikach, takich jak kopiowanie, przenoszenie i usuwanie. Programowanie asynchroniczne jest łatwiejsze dzięki obsłudze obietnic, co zapewnia płynne zarządzanie systemem plików i usprawnia obsługę plików JSON.

Z kolei IronPDF to potężna biblioteka PDF, która pozwala programistom generować, modyfikować i wyodrębniać treści z plików PDF. Jest to przydatne do tworzenia dokumentów PDF z HTML lub tekstu nieformatowanego, łączenia kilku plików PDF oraz dodawania nagłówków, stopek, znaków wodnych i innych dostosowań do plików PDF. To sprawia, że jest to cenne narzędzie do tworzenia faktur, raportów i innych dokumentów w locie.

Dzięki integracji fs-extra i IronPDF programiści mogą tworzyć złożone systemy zarządzania plikami i generować profesjonalnej jakości pliki PDF w ramach swoich aplikacji Node.js. Takie połączenie gwarantuje, że programy mogą skutecznie obsługiwać skomplikowane zadania związane z przetwarzaniem plików i dokumentów, jednocześnie zwiększając wydajność.

Czym jest fs-extra npm?

Pakiet fs-extra to elastyczne narzędzie Node.js, które rozszerza wbudowany moduł fs (system plików), zapewniając więcej funkcji upraszczających rutynowe operacje na plikach. Oferuje funkcje takie jak fs.copy, fs.move i fs.remove, które ułatwiają wykonywanie zadań, takich jak kopiowanie, przenoszenie i usuwanie plików oraz katalogów. Dodatkowo fs-extra zawiera narzędzia do odczytu i zapisu plików JSON (fs.readJson, fs.writeJson), sprawdzania istnienia katalogów lub plików (fs.ensureDir, fs.ensureFile) oraz wykonywania innych przydatnych operacji. Obsługuje Promises, co pozwala na użycie składni async/await w celu wygodniejszego zarządzania programowaniem asynchronicznym. Wszystkie metody fs zwracają obietnice, a fs-extra zawiera również metody synchroniczne.

fs extra npm (Jak to działa dla programistów): Rysunek 1 — Node.js: fs-extra

Funkcje fs-extra

Rozszerzając funkcje natywnego modułu fs, fs-extra jest ulepszonym modułem systemu plików dla Node.js. Jest to popularny wybór wśród programistów, oferujący szereg potężnych i praktycznych technik zarządzania plikami i katalogami. W porównaniu z oryginalnym modułem fs, fs-extra oferuje następujące funkcje, a także dodatkową obsługę obietnic w standardowych metodach fs:

Ulepszone operacje na plikach

  • Kopiowanie: fs.copy(src, dest): Kopiuje katalogi i pliki, w tym zawartość zagnieżdżoną, ze źródła do miejsca docelowego.
  • Przenieś: fs.move(src, dest): Przenosi foldery i pliki, oferując opcję zmiany ich nazw.
  • Usuń: fs.remove(path): Usuwa foldery i pliki rekurencyjnie.

Operacje na katalogach

  • Ensure Directory: fs.ensureDir(path): Sprawdza, czy katalog już istnieje; jeśli nie, tworzy katalog.
  • Pusty katalog: fs.emptyDir(path): Usuwa zawartość katalogu, ale pozostawia sam katalog nienaruszony.
  • Ensure File: fs.ensureFile(path): Sprawdza, czy plik już istnieje; jeśli nie, tworzy plik.

Obsługa JSON

  • Odczyt JSON: fs.readJson(path): Odczytuje plik JSON i analizuje jego zawartość.
  • Zapisz JSON: fs.writeJson(path, data): Zapisuje obiekt JavaScript do pliku w formacie JSON.

Wsparcie techniczne

  • API oparte na obietnicach: Większość metod zwraca obietnice, co ułatwia pisanie kodu asynchronicznego przy użyciu składni async/await.

Kompatybilność wsteczna

  • Pełna obsługa modułu fs: fs-extra zawiera wszystkie standardowe metody z natywnego modułu fs, co czyni go bezpośrednim zamiennikiem z pełną kompatybilnością wsteczną.

Metody wygody

  • Plik wyjściowy: fs.outputFile(path, data): Tworzy katalogi, jeśli jeszcze nie istnieją, i zapisuje dane do pliku.
  • Output JSON: fs.outputJson(path, data): Tworzy foldery, jeśli jeszcze nie istnieją, przed zapisaniem obiektu JavaScript w formacie JSON do pliku.
  • Odczyt pliku: fs.readFile(path): Odczytuje zawartość pliku.
  • Zapisz plik: fs.writeFile(path, data): Zapisuje dane do pliku.
  • Path Exists: fs.pathExists(path): Sprawdza, czy plik lub katalog istnieje w podanej ścieżce.

Utwórz dowiązania symboliczne

  • Ensure Symlink: fs.ensureSymlink(srcpath, dstpath): Sprawdza, czy istnieje dowiązanie symboliczne, a jeśli nie, tworzy je.

Tworzenie i konfigurowanie projektu Node.js za pomocą fs-extra

Aby użyć biblioteki fs-extra w projekcie Node.js, należy ją utworzyć i skonfigurować w następujący sposób:

Konfiguracja projektu

Zacznij od utworzenia nowego katalogu dla swojego projektu i użyj npm, aby uruchomić zupełnie nowy projekt Node.js (npm init -y). To uzupełnia podstawową strukturę Twojej aplikacji.

Zainstaluj fs-extra

Użyj npm, aby zainstalować bibliotekę fs-extra:

npm install fs-extra
npm install fs-extra
SHELL

Korzystanie z fs-extra

Aby zilustrować użycie fs-extra, otwórz index.js w swoim ulubionym edytorze tekstu i dodaj poniższy przykładowy kod.

// Import the fs-extra module
const fs = require('fs-extra');

// Asynchronous function to perform various file operations
async function performFileOperations() {
  try {
    // Ensure a directory exists; create it if it doesn't
    await fs.ensureDir('exampleDir');

    // Create a file and write some data to it
    await fs.outputFile('exampleDir/exampleFile.txt', 'Hello, world!');

    // Read the file's content
    const data = await fs.readFile('exampleDir/exampleFile.txt', 'utf-8');
    console.log('File Content:', data);

    // Recursively copy the file
    await fs.copy('exampleDir/exampleFile.txt', 'exampleDir/copyOfExampleFile.txt');

    // Move the file to a new location
    await fs.move('exampleDir/copyOfExampleFile.txt', 'exampleDir/movedExampleFile.txt');

    // Remove the file
    await fs.remove('exampleDir/movedExampleFile.txt');

    // Ensure a file exists; create it if it doesn't
    await fs.ensureFile('exampleDir/newFile.txt');

    // Write JSON data to a file
    const jsonData = { name: 'John Doe', age: 30 };
    await fs.writeJson('exampleDir/data.json', jsonData);

    // Read JSON data from a file
    const jsonFileContent = await fs.readJson('exampleDir/data.json');
    console.log('JSON File Content:', jsonFileContent);
  } catch (err) {
    console.error('Error during file operations:', err);
  }
}

// Execute the file operations
performFileOperations();
// Import the fs-extra module
const fs = require('fs-extra');

// Asynchronous function to perform various file operations
async function performFileOperations() {
  try {
    // Ensure a directory exists; create it if it doesn't
    await fs.ensureDir('exampleDir');

    // Create a file and write some data to it
    await fs.outputFile('exampleDir/exampleFile.txt', 'Hello, world!');

    // Read the file's content
    const data = await fs.readFile('exampleDir/exampleFile.txt', 'utf-8');
    console.log('File Content:', data);

    // Recursively copy the file
    await fs.copy('exampleDir/exampleFile.txt', 'exampleDir/copyOfExampleFile.txt');

    // Move the file to a new location
    await fs.move('exampleDir/copyOfExampleFile.txt', 'exampleDir/movedExampleFile.txt');

    // Remove the file
    await fs.remove('exampleDir/movedExampleFile.txt');

    // Ensure a file exists; create it if it doesn't
    await fs.ensureFile('exampleDir/newFile.txt');

    // Write JSON data to a file
    const jsonData = { name: 'John Doe', age: 30 };
    await fs.writeJson('exampleDir/data.json', jsonData);

    // Read JSON data from a file
    const jsonFileContent = await fs.readJson('exampleDir/data.json');
    console.log('JSON File Content:', jsonFileContent);
  } catch (err) {
    console.error('Error during file operations:', err);
  }
}

// Execute the file operations
performFileOperations();
JAVASCRIPT

Powyższy fragment kodu ilustruje funkcje ulepszonego modułu systemu plików Node.js, biblioteki fs-extra. Skrypt implementuje metodę asynchroniczną o nazwie performFileOperations w celu wykonania kilku operacji na plikach po zaimportowaniu biblioteki fs-extra. Korzystając z metody fs.ensureDir(), najpierw sprawdza, czy istnieje katalog o nazwie "exampleDir". Następnie, korzystając z metody fs.outputFile(), tworzy plik o nazwie "exampleFile.txt" w tym katalogu i zapisuje w nim tekst "Hello, world!". Za pomocą funkcji fs.readFile() skrypt odczytuje zawartość pliku i zapisuje ją w konsoli.

Wynik konsoli

fs extra npm (Jak to działa dla programistów): Rysunek 2 – Wynik działania konsoli dla aplikacji Node.js korzystającej z biblioteki fs-extra do obsługi plików.

Dodatkowo wykorzystuje funkcje rekurencyjne, takie jak fs.copy(), aby skopiować plik do "copyOfExampleFile.txt", a następnie używa fs.move(), aby przenieść tę kopię do "movedExampleFile.txt". Następnie funkcja fs.remove() służy do usunięcia przeniesionego pliku. Skrypt wykorzystuje funkcję fs.ensureFile() do sprawdzenia istnienia pliku "newFile.txt" oraz fs.writeJson() do zapisania obiektu JSON w pliku "data.json". Na koniec używa funkcji fs.readJson() do odczytania danych JSON z powrotem z pliku i zapisania ich w konsoli. Błędy występujące podczas tych procedur są wykrywane i rejestrowane. Przydatność i łatwość użycia fs-extra do zarządzania plikami i katalogami w Node.js jest następnie zademonstrowana poprzez wywołanie funkcji performFileOperations w celu wykonania tych operacji jedna po drugiej.

WYNIK

fs extra npm (Jak to działa dla programistów): Rysunek 3 – Widok eksploratora plików przedstawiający katalog exampleDir oraz pliki utworzone programowo przy użyciu biblioteki fs-extra w aplikacji Node.js

Połączenie fs-extra z IronPDF

Potężny zestaw narzędzi dla programistów Node.js powstał dzięki połączeniu IronPDF for Node.js, zapewniającego niezawodne tworzenie plików PDF, z fs-extra, usprawniającym operacje na systemie plików. W tym samouczku dowiesz się, jak skonfigurować projekt Node.js przy użyciu bibliotek IronPDF i fs-extra, a także znajdziesz przykładowy kod ilustrujący sposób ich wspólnego wykorzystania.

Czym jest IronPDF?

IronPDF to potężna biblioteka Node.js, której celem jest konwersja danych HTML na pliki PDF o niezwykle wysokiej jakości. Przyspiesza proces przekształcania plików HTML, CSS i innych plików JavaScript w poprawnie sformatowane pliki PDF bez utraty oryginalnej treści internetowej. Jest to bardzo przydatne w przypadku aplikacji internetowych, które muszą generować dynamiczne, nadające się do druku dokumenty, takie jak faktury, certyfikaty i raporty.

IronPDF posiada kilka funkcji, w tym konfigurowalne ustawienia stron, nagłówki, stopki oraz opcje dodawania czcionek i obrazów. Potrafi obsługiwać złożone style i układy, aby zapewnić, że każdy testowy plik PDF spełnia specyfikacje. Ponadto IronPDF kontroluje wykonywanie kodu JavaScript w HTML, umożliwiając dokładne renderowanie treści dynamicznych i interaktywnych.

fs extra npm (Jak to działa dla programistów): Rysunek 4 – IronPDF for Node.js: biblioteka PDF dla Node.js

Funkcje IronPDF

Generowanie plików PDF z HTML

Konwertuj HTML, CSS i JavaScript do formatu PDF. Obsługuje nowoczesne standardy internetowe, takie jak zapytania o media i projektowanie responsywne, co jest przydatne przy używaniu HTML i CSS do dynamicznego formatowania dokumentów PDF, raportów i rachunków.

Edycja plików PDF

  • Dodawaj tekst, obrazy i inne materiały do istniejących plików PDF.
  • Wyodrębnianie tekstu i obrazów z plików PDF.
  • Połącz kilka plików PDF w jeden plik.
  • Podziel pliki PDF na kilka oddzielnych dokumentów.
  • Dodaj nagłówki, stopki, adnotacje i znaki wodne.

Wydajność i niezawodność

Cechy projektowe obejmują wysoką wydajność i niezawodność w kontekście przemysłowym. Z łatwością radzi sobie z dużymi zbiorami dokumentów.

Zainstaluj IronPDF

Aby uzyskać narzędzia potrzebne do pracy z plikami PDF w projektach Node.js, zainstaluj pakiet IronPDF.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

Integracja fs-extra npm z IronPDF

Aby zademonstrować wspólne wykorzystanie fs-extra i IronPDF, otwórz index.js w preferowanym edytorze tekstu i dodaj następujący kod:

// Import fs-extra and IronPDF libraries
const fs = require('fs-extra');
const IronPdf = require("@ironsoftware/ironpdf");

const document = IronPdf.PdfDocument;
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: '' }); // Set your IronPDF license key here

// Asynchronous function to create and manage PDF files
async function createAndManagePDF() {
  try {
    // Ensure the parent directory exists
    const outputDir = 'output';
    await fs.ensureDir(outputDir);

    // Define the HTML content for the PDF
    const htmlContent = `
      <html>
        <head>
          <title>Sample PDF</title>
        </head>
        <body>
          <h1>Hello, world!</h1>
          <p>This is a sample PDF generated using IronPDF and fs-extra.</p>
        </body>
      </html>
    `;

    // Initialize IronPDF and generate a PDF from the HTML content
    let pdf = await document.fromHtml(htmlContent);
    const pdfPath = `${outputDir}/sample.pdf`;
    await pdf.saveAs(pdfPath);
    console.log('PDF generated successfully:', pdfPath);

    // Read the PDF file and check its size
    const pdfData = await fs.readFile(pdfPath);
    console.log('PDF file size:', pdfData.length);

    // Copy the PDF file
    const copiedPdfPath = `${outputDir}/copied_sample.pdf`;
    await fs.copy(pdfPath, copiedPdfPath);
    console.log('PDF copied successfully:', copiedPdfPath);

    // Move the copied PDF file
    const movedPdfPath = `${outputDir}/moved_sample.pdf`;
    await fs.move(copiedPdfPath, movedPdfPath);
    console.log('PDF moved successfully:', movedPdfPath);

    // Remove the original PDF file
    await fs.remove(pdfPath);
    console.log('Original PDF removed successfully:', pdfPath);
  } catch (err) {
    console.error('Error during PDF creation and management:', err);
  }
}

// Execute the PDF creation and management operations
createAndManagePDF();
// Import fs-extra and IronPDF libraries
const fs = require('fs-extra');
const IronPdf = require("@ironsoftware/ironpdf");

const document = IronPdf.PdfDocument;
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: '' }); // Set your IronPDF license key here

// Asynchronous function to create and manage PDF files
async function createAndManagePDF() {
  try {
    // Ensure the parent directory exists
    const outputDir = 'output';
    await fs.ensureDir(outputDir);

    // Define the HTML content for the PDF
    const htmlContent = `
      <html>
        <head>
          <title>Sample PDF</title>
        </head>
        <body>
          <h1>Hello, world!</h1>
          <p>This is a sample PDF generated using IronPDF and fs-extra.</p>
        </body>
      </html>
    `;

    // Initialize IronPDF and generate a PDF from the HTML content
    let pdf = await document.fromHtml(htmlContent);
    const pdfPath = `${outputDir}/sample.pdf`;
    await pdf.saveAs(pdfPath);
    console.log('PDF generated successfully:', pdfPath);

    // Read the PDF file and check its size
    const pdfData = await fs.readFile(pdfPath);
    console.log('PDF file size:', pdfData.length);

    // Copy the PDF file
    const copiedPdfPath = `${outputDir}/copied_sample.pdf`;
    await fs.copy(pdfPath, copiedPdfPath);
    console.log('PDF copied successfully:', copiedPdfPath);

    // Move the copied PDF file
    const movedPdfPath = `${outputDir}/moved_sample.pdf`;
    await fs.move(copiedPdfPath, movedPdfPath);
    console.log('PDF moved successfully:', movedPdfPath);

    // Remove the original PDF file
    await fs.remove(pdfPath);
    console.log('Original PDF removed successfully:', pdfPath);
  } catch (err) {
    console.error('Error during PDF creation and management:', err);
  }
}

// Execute the PDF creation and management operations
createAndManagePDF();
JAVASCRIPT

Powyższy przykład kodu Node.js łączy bibliotekę IronPDF for Node.js do tworzenia plików PDF i zarządzania nimi z biblioteką fs-extra do zaawansowanych operacji na systemie plików. Zaczyna się od upewnienia się, że katalog o nazwie "output" istnieje, używając funkcji fs.ensureDir(). Katalog to hierarchiczna grupa katalogów i plików. Struktura pliku PDF, który zostanie utworzony, jest określona przez zawartość HTML, która znajduje się w htmlContent. Wykorzystuje klasę PdfDocument biblioteki IronPDF do wstawiania treści HTML za pomocą metody fromHtml() i zapisuje wynikowy plik PDF w pliku "output/sample.pdf" za pomocą funkcji saveAs().

WYNIK

fs extra npm (Jak to działa dla programistów): Rysunek 5 – Wynik działania konsoli dla aplikacji Node.js łączącej biblioteki fs-extra i IronPDF. Program wykorzystuje bibliotekę fs-extra do obsługi plików i katalogów oraz bibliotekę IronPDF do konwersji treści HTML do formatu PDF.

Następnie używa się fs-extra do kontynuowania operacji na plikach: fs.readFile() pobiera zawartość pliku PDF, aby sprawdzić jego rozmiar. fs.copy() kopiuje wygenerowany plik "output/sample.pdf" do "output/copied_sample.pdf", następnie metoda fs.move() przenosi tę kopię do "output/moved_sample.pdf", a na koniec usuwa oryginalny plik PDF. Obsługa błędów za pomocą bloków try-catch gwarantuje, że wszelkie problemy pojawiające się podczas wykonywania metod lub działań fs są prawidłowo wychwytywane i rejestrowane. Ogólnie rzecz biorąc, ta konfiguracja pokazuje, jak usprawnić operacje na plikach za pomocą fs-extra oraz jak z łatwością tworzyć i edytować pliki PDF w aplikacjach Node.js przy użyciu IronPDF.

WYJŚCIE PDF

fs extra npm (Jak to działa dla programistów): Rysunek 6 – Plik PDF wygenerowany przy użyciu IronPDF i fs-extra: moved_sample.pdf

Wnioski

Wreszcie, fs-extra i IronPDF razem stanowią solidne rozwiązanie do zarządzania operacjami systemu plików i tworzenia plików PDF w aplikacjach Node.js. Dzięki ulepszonym metodom fs-extra upraszcza zadania, takie jak tworzenie katalogów, kopiowanie, przenoszenie i usuwanie plików, oraz stanowi solidną podstawę do wydajnego zarządzania plikami. Tymczasem IronPDF oferuje elastyczność w tworzeniu i przetwarzaniu dokumentów, umożliwiając łatwą konwersję treści HTML do dokumentów PDF.

Po połączeniu biblioteki te umożliwiają programistom łatwe tworzenie dynamicznych aplikacji zdolnych do tworzenia plików PDF, zarządzania nimi i pracy z nimi. Integracja fs-extra i IronPDF pozwala programistom zaspokajać różnorodne potrzeby związane z obsługą dokumentów w środowiskach Node.js dzięki zaawansowanym możliwościom, niezależnie od tego, czy tworzą faktury, raporty czy dokumenty dynamiczne.

Dzięki IronPDF i Iron Software możesz rozszerzyć swój zestaw narzędzi do tworzenia aplikacji w Node.js o funkcje OCR, skanowania kodów kreskowych, generowania plików PDF, interakcji z Excelem i wiele innych. Iron Software oferuje wysoce konfigurowalne systemy oraz szereg wtyczek wspieranych przez społeczność, umożliwiających programistom szybsze tworzenie funkcji i aplikacji internetowych.

IronPDF oferuje szczegółową dokumentację, a opcje licencyjne zaczynają się od planów takich jak $799, co ułatwia programistom wybór najlepszego modelu dostosowanego do potrzeb ich projektów. Funkcje te umożliwiają programistom skuteczne i efektywne rozwiązywanie różnorodnych problemów.

Gość: Engage Elephant

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