您好,登錄后才能下訂單哦!
Nodejs中怎么利用Kue動態生成PDF文檔,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
先決條件
您需要安裝以下軟件:
Node.js最新穩定版。
您可以從官方站點安裝Node.js.
要在Ubuntu 18.04中安裝Redis,請使用以下命令。
$ sudo apt-get update
$ sudo apt-get install redis-server
```
要在Mac中安裝Redis,請閱讀以下文章。
Redis入門,聊天應用程序
啟動Redis
redis-3.2.8 $ src / redis-server
要在Windows 10上安裝Redis,請訪問此Redis官方實驗室安裝指南并按照步驟操作。
關于Kue
Kue是一個運行在Redis之上的工作隊列。我們可以使用隊列將任務委派給多個worker,并節省處理時間。使用隊列系統完成高計算任務,例如視頻渲染,文檔生成,繁重的數學計算。
我正在使用Kue演示如何使用該軟件以高效的方式設計和擴展系統。
創建節點項目
創建一個新文件夾并使用終端或命令提示符切換到該文件夾。
mkdir pdfgeneration && cd pdfgeneration
使用以下命令創建新的Node項目。
$ npm init --y
讓我們安裝依賴項。我們需要kue和pdfkit依賴。
$ npm install --save kue pdfkit
真棒。讓我們編寫我們的應用程序。
我將創建兩個命名job.js和worker.js的文件。
在Job.js中,我將編寫代碼來讀取文件或數據庫并創建一個Kue作業。
在Worker.js中,我將編寫代碼來收聽Kue主題并在請求到來時生成PDF文檔。
為簡單起見,這里有一些我將用于生成PDF文檔的條目。
invoice.js
模塊。exports = {
內容: [ {
' index ' : 1 ,
' text ' : ' 你好Shahid,你本月收取100美元的服務費。“
},{
' index ' : 2 ,
' text ' : ' 你好杰森,你這個月收取50美元的服務費。“
},{
' 指數' : 3 ,
' text ' : ' 你好Mark,你本月收取76美元的服務費。“
} ]
}
這是我們的Job.js代碼。
const kue = require (' kue ' );
const invoice = require(' ./invoice ');
const queue = kue 。createQueue();
function startJob () {
讓 invoiceData = invoice 。內容;
invoiceData 。forEach(( singleInvoice ) => {
//推送隊列中的數據
讓 job = 隊列。創建(' 發票' , {
title : ` 生成發票$ { singleInvoice 。index } ` ,
模板: singleInvoice 。文字,
})。延遲(5000)。優先級(' 高')。save(( err ) => {
if(! err){
控制臺。日志(' 工作加... ' + 工作。 ID);
}
});
});
}
startJob ();
在此代碼中,我們正在讀取存儲有關PDF文檔的信息的文件,對于每個條目,我們在隊列中創建一個新作業。
這是我們的Worker.js代碼。
const kue = require (“ kue ” );
const queue = kue 。createQueue();
const pdfKit = require(' pdfkit ');
const fs = require(' fs ');
function startProcess () {
//聽隊列
//開始處理電子郵件
隊列。流程(' invoice ' , ( job , done ) => {
//在每個請求上生成pdf
generatePdfInvoice(作業。數據,完成);
});
}
function generatePdfInvoice ( data , done ) {
讓 doc = new pdfKit ;
文檔。管(FS 。createWriteStream(` $ { __dirname } /發票/ $ {數據。標題} .PDF `));
文檔。fontSize(14)。文本(數據。模板, 100 , 100);
文檔。結束();
完成();
}
startProcess();
KUE 。app 。聽(4000 );
在此代碼中,我們正在聽Kue主題即發票,并且在每個請求中,我們正在生成pdf文檔。PDF文檔的標題應該是唯一的,因此我們使用索引字段來維護唯一的標題約定。
運行應用程序
要運行應用程序,請首先使用以下命令運行job.js.
$ node job.js
您應該在終端中看到類似的輸出。
現在使用以下命令運行worker.js .
$ node worker.js
要驗證作業是否已添加到隊列,請訪問localhost:4000以查看隊列。
看完上述內容,你們掌握Nodejs中怎么利用Kue動態生成PDF文檔的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。