節點幫助

fs extra npm(開發者如何使用)

發佈 2024年9月29日
分享:

介紹

Node.js 是一個強大的 JavaScript 執行環境,憑藉提供一個高效及可擴展的應用程式開發環境,徹底改變了伺服器端編程。 fs-extraIronPDF 在眾多提供高級檔案處理和 PDF 創建能力的 Node.js 套件中脫穎而出。

更友好的 API 和更多方法可用於文件操作,如複製、移動和刪除使用 fs-extraNode 原生 fs 模組的改進版。 異步編程也因其保證了順暢的文件系統管理並支持 Promise 而變得更易處理,並簡化了處理 JSON 檔案。

反之, IronPDF 是一個強大的 PDF 庫,讓程式員能夠生成、修改和提取 PDF 文件中的內容。 運行良好於 從 HTML 創建 PDF 文件 或未格式化的文字, 合併多個 PDF 文件,和 添加頁眉、頁腳、水印和其他自訂內容到 PDF。 因此,它是一個非常寶貴的工具,可用於即時創建發票、報告和其他文件。

開發人員可以通過整合,在其 Node.js 應用程式中建立複雜的檔案管理系統,並生成專業品質的 PDF。 fs-extraIronPDF. 這種組合保證這些程式能夠有效地處理複雜的檔案和文件處理任務,還能提高生產力。

什麼是 fs-extra npm?

一個靈活的 Node.js 套件,名為 fs-extra 擴展內建的 fs (檔案系統) 模組,提供更多功能以讓常規文件操作更簡單。 透過如 fs.copy、fs.move 和 fs.remove 等功能,操作如複製、移動和刪除檔案及目錄變得更加容易。 除此之外,fs-extra還附帶有讀寫 JSON 文件的工具。 (fs.readJson, fs.writeJson), 驗證目錄或檔案的存在 (fs.ensureDir, fs.ensureFile),並執行其他便利操作。 fs-extra 也允許我們替換現有的檔案。 支持 Promises 這一事實,使得使用 async/await 語法來處理更可控的非同步程式設計,成為其主要特點之一。 所有的 fs 方法在其回調中返回 Promise。 fs-extra 也附帶同步方法。

fs extra npm(對開發人員的運作方式):圖 1 - Node.js:fs-extra

fs-extra 的功能

擴充原生 fs 模組的功能,fs-extra 是 Node.js 的改進檔案系統模組。 由於它提供了一系列強大且實用的技術來管理檔案和資料夾,因此受到開發者的歡迎。 與原始的 fs 模組相比,fs-extra 具有以下顯著特徵,並在常規的 fs 方法中增加了承諾支持:

增強的檔案操作

  • 複製: fs.copy(src, dest):將目錄和文件(包括嵌套內容)從來源複製到目的地。
  • 移動:fs.move(src, dest):傳輸資料夾和文件,並可選擇重新命名。
  • 移除: fs.remove(路径):遞歸刪除資料夾和檔案。

目錄操作

  • 確保目錄: fs.ensureDir(路径):驗證目錄是否已存在; 如果不是,則創建目錄。
  • 空目錄: fs.emptyDir(路径):刪除目錄但保留其為空。
  • 確保文件: fs.ensureFile(路径):檢查檔案是否已經存在; 如果沒有,則創建該檔案。

JSON處理

  • 讀取 JSON: fs.readJson(路径):讀取 JSON 檔案並解析其內容。
  • 撰寫 JSON: fs.writeJson(路徑, 數據):將 JavaScript 物件寫入文件為 JSON。

Promise 支援

  • 基於 Promise 的 API:由於大多數方法返回 Promises,使用 async/await 語法編寫非同步代碼變得更加容易。

向後相容性

  • 完整的 fs 模組支援:因為 fs-extra 包含原生 fs 模組的所有標準方法,它可以作為完全兼容的替代品使用。

便利方法

  • Output File: fs.outputFile(路徑, 數據)如果目錄不存在,則創建目錄並將數據寫入文件。
  • 輸出 JSON:fs.outputJson(路徑, 數據):在將 JavaScript 對象以 JSON 格式寫入文件之前,如果不存在,則創建文件夾。
  • 讀取檔案: fs.readFile(路径): 讀取文件內容。
  • 寫入檔案: fs.writeFile(路徑, 數據):將資料寫入檔案。
  • Path Exists: fs.pathExists(路径):檢查指定路徑下的檔案或目錄是否存在。

建立符號鏈接

  • 確保符號鏈接:fs.ensureSymlink(srcpath, dstpath):驗證是否存在符號連結,如果不存在,則創建一個。

使用 fs-extra 建立和配置 Node.js 專案

在 Node.js 專案中使用 fs-extra 函式庫,按如下方式創建和配置:

設置專案

首先,為您的專案創建一個新目錄,然後使用 npm 啟動一個全新的 Node.js 專案。 (npm init -y). 這將為您的應用程式填充基本架構。

安裝 fs-extra

使用 npm 安裝 fs-extra 庫:

npm install fs-extra
npm install fs-extra
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install fs-extra
VB   C#

使用 fs-extra

要說明 fs-extra 的用法,在您偏好的文字編輯器中打開 index.js 並加入以下範例代碼。

// import fs module
const fs = require('fs-extra');
async function performFileOperations() {
  try {
    // Ensure a fs extra directory exists
    await fs.ensureDir('exampleDir');
    // Create a file and write some data to it
    await fs .outputFile('exampleDir/exampleFile.txt', 'Hello, world!');
    // Read the file
    const data = await fs.readFile('exampleDir/exampleFile.txt', 'utf-8');
    console.log('File Content:', data);
    // recursively copy files
    await fs.copy('exampleDir/exampleFile.txt', 'exampleDir/copyOfExampleFile.txt');
    // Move the file
    await fs.move('exampleDir/copyOfExampleFile.txt', 'exampleDir/movedExampleFile.txt');
    // Remove the file
    await fs.remove('exampleDir/movedExampleFile.txt');
    // Ensure a file exists and 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(err);
  }
}
performFileOperations();
// import fs module
const fs = require('fs-extra');
async function performFileOperations() {
  try {
    // Ensure a fs extra directory exists
    await fs.ensureDir('exampleDir');
    // Create a file and write some data to it
    await fs .outputFile('exampleDir/exampleFile.txt', 'Hello, world!');
    // Read the file
    const data = await fs.readFile('exampleDir/exampleFile.txt', 'utf-8');
    console.log('File Content:', data);
    // recursively copy files
    await fs.copy('exampleDir/exampleFile.txt', 'exampleDir/copyOfExampleFile.txt');
    // Move the file
    await fs.move('exampleDir/copyOfExampleFile.txt', 'exampleDir/movedExampleFile.txt');
    // Remove the file
    await fs.remove('exampleDir/movedExampleFile.txt');
    // Ensure a file exists and 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(err);
  }
}
performFileOperations();
' import fs module
Private const fs = require( 'fs-extra');
Async Function performFileOperations() As [function]
  Try
	' Ensure a fs extra directory exists
	Await fs.ensureDir( 'exampleDir');
	' Create a file and write some data to it
	Await fs.outputFile( 'exampleDir/exampleFile.txt', 'Hello, world!');
	' Read the file
	const data = Await fs.readFile( 'exampleDir/exampleFile.txt', 'utf-8');
	console.log( 'File Content:', data);
	' recursively copy files
	Await fs.copy( 'exampleDir/exampleFile.txt', 'exampleDir/copyOfExampleFile.txt');
	' Move the file
	Await fs.move( 'exampleDir/copyOfExampleFile.txt', 'exampleDir/movedExampleFile.txt');
	' Remove the file
	Await fs.remove( 'exampleDir/movedExampleFile.txt');
	' Ensure a file exists and 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 e1 As err
	console.error(err)
  End Try
End Function
performFileOperations()
VB   C#

上述程式碼片段展示了改進的 Node.js 文件系統模組 fs-extra 庫的功能。 該腳本實作了一個名為 performFileOperations 的非同步方法,以在 importing fs-extra 後執行多個檔案操作。 使用 fs.ensureDir() 方法,首先驗證一個名為 "exampleDir" 的目錄是否存在。 然後,使用fs.outputFile() 方法,它會在此目錄中創建一個名為 "exampleFile.txt" 的文件,並將文本 "Hello, world!" 到它。 使用 fs.readFile(), 此腳本讀取檔案內容並將其記錄到控制台。

控制台輸出

fs extra npm(開發人員如何使用):圖2 - 使用 fs-extra 庫進行文件處理的 Node.js 應用程式的控制台輸出。

此外,它使用像 fs.copy 这样的递归函数。() 將檔案複製到 "copyOfExampleFile.txt",然後使用 fs.move 將該副本移動到 "movedExampleFile.txt"。 然後,fs.remove() 用於刪除已重新定位的文件。該腳本使用 fs.ensureFile() 檢查 "newFile.txt" 是否存在的函數及 fs.writeJson()將 JSON 物件寫入 "data.json" 檔案。最後,它使用 fs.readJson。() 從文件中讀取 JSON 數據並將其記錄到控制台。 在這些過程中出現的錯誤會被記錄和保存下來。 然後,透過呼叫函數 performFileOperations 逐一執行這些操作,展示了 fs-extra 在 Node.js 中進行文件和目錄管理的實用性和易用性。

輸出

fs extra npm(如何為開發人員工作):圖 3 - 檔案總管輸出,顯示使用 Node.js 應用程式中的 fs-extra 庫以程式化方式創建的 exampleDir 目錄和檔案

將 fs-extra 與 IronPDF 結合使用

為 Node.js 開發者打造的一個強大工具包是通過結合 IronPDF 用於可靠的 PDF 製作,搭配 fs-extra 以改善檔案系統操作。 本教程將向您展示如何使用 IronPDF 和 fs-extra 建立 Node.js 專案,並提供演示如何將它們結合使用的示例代碼。

什麼是 IronPDF?

一個 IronPDF 該庫是一個強大的 Node.js 庫,旨在將 HTML 數據轉換為極高質量的 PDF 文件。 它加快了將 HTML、CSS 和其他 JavaScript 文件轉換為格式正確的 PDF 的過程,同時不損害原始的在線內容。 這是一個對於需要生成動態、可打印文檔的網絡應用程式而言非常實用的工具,例如發票、證書和報告。

IronPDF 具有多種功能,包括可自定義的頁面設定、頁眉、頁腳,以及添加字體和圖像的選項。 它可以管理複雜的樣式和佈局,以確保每個測試的 PDF 輸出符合規範。 此外,IronPDF 控制 HTML 中的 JavaScript 執行,允許精確的動態和互動內容渲染。

fs extra npm(開發者如何使用):圖4 - IronPDF for Node.js:Node.js PDF庫

IronPDF 的功能

從 HTML 生成 PDF

將 HTML、CSS 和 JavaScript 轉換為 PDF。 支持兩個現代網路標準:媒體查詢和響應式設計。 方便使用 HTML 和 CSS 動態裝飾 PDF 文件、報告和賬單。

PDF 編輯

可以將文字、圖片及其他素材添加到現有的PDF。 從 PDF 文件中提取文本和圖像。 將多個 PDF 合併成單個檔案。將 PDF 檔案拆分為多個獨立的文件。 新增頁首、頁尾、註解和浮水印。

性能與可靠性

在工業環境中,高性能和可靠性是理想的設計屬性。 輕鬆處理大型文檔集。

安裝 IronPDF

要在 node.js 專案中使用處理 PDF 的工具,請安裝 IronPDF 套件.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'npm install @ironsoftware/ironpdf
VB   C#

將 fs-extra npm 與 IronPDF 集成

要展示如何使用 fs-extra 和 IronPDF,請在您偏好的文本編輯器中打開 index.js 並添加以下代碼。

// 
const fs = require('fs-extra');
const IronPdf = require("@ironsoftware/ironpdf");
const document=IronPdf.PdfDocument;
var config=IronPdf.IronPdfGlobalConfig
config.setConfig({licenseKey:''});
async function createAndManagePDF() {
  try {
    // Ensure the parent directories exist
    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
    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);
  }
}
createAndManagePDF();
// 
const fs = require('fs-extra');
const IronPdf = require("@ironsoftware/ironpdf");
const document=IronPdf.PdfDocument;
var config=IronPdf.IronPdfGlobalConfig
config.setConfig({licenseKey:''});
async function createAndManagePDF() {
  try {
    // Ensure the parent directories exist
    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
    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);
  }
}
createAndManagePDF();
' 
const fs = require( 'fs-extra');
const IronPdf = require("@ironsoftware/ironpdf")
const document=IronPdf.PdfDocument
Dim config=IronPdf.IronPdfGlobalConfig config.setConfig({licenseKey: ''});
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'async @function createAndManagePDF()
'{
'  try
'  {
'	' Ensure the parent directories exist
''INSTANT VB TODO TASK: The following line uses invalid syntax:
''	const outputDir = 'output'; await fs.ensureDir(outputDir); 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> `; let pdf= await document.fromHtml(htmlContent); const pdfPath = `${outputDir}/sample.pdf`; await pdf.saveAs(pdfPath); console.log('PDF generated successfully:', pdfPath); const pdfData = await fs.readFile(pdfPath); console.log('PDF file size:', pdfData.length); const copiedPdfPath = `${outputDir}/copied_sample.pdf`; await fs.copy(pdfPath, copiedPdfPath); console.log('PDF copied successfully:', copiedPdfPath); const movedPdfPath = `${outputDir}/moved_sample.pdf`; await fs.move(copiedPdfPath, movedPdfPath); console.log('PDF moved successfully:', movedPdfPath); await fs.remove(pdfPath); console.log('Original PDF removed successfully:', pdfPath); } catch(err) { console.@error('@Error during PDF creation @and management:', err); } } createAndManagePDF();
VB   C#

上面的 Node.js 代碼範例結合 IronPDF 用於創建和管理 PDF 檔案 使用 fs-extra 進行高級檔案系統操作。 它首先通過使用 fs.ensureDir 創建一個名為 "output" 的目錄來確保該目錄存在。(). 目錄只是目錄和檔案的分層分組。 將要創建的 PDF 結構由包含在 htmlContent 中的 HTML 內容所定義。 它使用 fromHtml 插入 HTML 內容。() 方法並使用 saveAs 將結果 PDF 儲存到 "output/sample.pdf"() function,皆使用 IronPDF 的 PdfDocument 類別。

輸出

fs extra npm (開發者如何使用):圖 5 - Node.js 應用程式結合 fs-extra 和 IronPDF 庫的控制台輸出。 該程序使用 fs-extra 庫來處理文件和目錄,並使用 IronPDF 庫將 HTML 內容轉換為 PDF 文件。

fs-extra 用於繼續檔案操作:fs.readFile() 獲取 PDF 的內容以追蹤其大小。fs.copy()將生成的"output/sample.pdf"複製到"output/copied_sample.pdf",然後fs.move() 方法將此副本移至 "output/moved_sample.pdf",並刪除原始 PDF。 try-catch 區塊錯誤處理確保在執行 fs 方法或活動時出現的任何問題都能被識別和記錄。 總體而言,此配置展示了如何使用 fs-extra 增強文件操作,以及如何在 Node.js 應用程式中使用 IronPDF 輕鬆創建和操作 PDF。

輸出 PDF

fs extra npm(對開發者的運作方式):圖 6 - 使用 IronPDF 和 fs-extra 生成的輸出 PDF:moved_sample.pdf

結論

最後, fs-extraIronPDF 共同為管理檔案系統操作和在 Node.js 應用中生成 PDF 提供了穩固的解決方案。 透過其改進的方法,fs-extra 讓建立目錄、複製、移動和刪除檔案等活動變得更簡單,並為有效的檔案管理提供了堅實的基礎。 然而,IronPDF 在文件創建和處理上提供了多樣性,使 HTML 資訊能夠輕鬆轉換為 PDF 文件。

當這些庫結合在一起時,開發人員可以輕鬆地創建可以生成、管理和處理PDF文件的動態應用程序。 隨著fs-extraIronPDF的整合,開發人員在Node.js環境中可以滿足各種文檔處理需求,無論是創建發票、報告還是動態文檔,都具有強大的能力。

在...的幫助下 IronPDFIronSoftware,您可以透過光學字符識別、條碼掃描、PDF 生成、Excel 互動以及其他多種功能擴展您的 Node 開發工具包。 IronSoftware 的 高度可配置的系統和多樣的社群支援插件使開發者能夠更快地創建功能和網頁應用程式。

隨著詳細的 文檔 IronPDF 的起價僅為 $749。

如果專案特定的授權選項明確描述,開發人員可以輕鬆選擇最佳模式。 這些功能使開發者能夠快速且有效地解決各種問題。

訪客:參與大象

< 上一頁
express validator npm(它如何為開發者工作)
下一個 >
fastify npm(對開發人員的運作方式)

準備開始了嗎? 版本: 2024.9 剛剛發布

免費 npm 安裝 查看許可證 >