Nodejs中怎么利用Kue動態(tài)生成PDF文檔-創(chuàng)新互聯(lián)

Nodejs中怎么利用Kue動態(tài)生成PDF文檔,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

成都創(chuàng)新互聯(lián)主營福州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),福州h5微信小程序搭建,福州網(wǎng)站營銷推廣歡迎福州等地區(qū)企業(yè)咨詢

先決條件

您需要安裝以下軟件:

  • Node.js最新穩(wěn)定版。

  • Redis的


您可以從官方站點安裝Node.js. 

要在Ubuntu 18.04中安裝Redis,請使用以下命令。

$ sudo apt-get update 
$ sudo  apt-get  install redis-server

``` 
要在Mac中安裝Redis,請閱讀以下文章。
Redis入門,聊天應(yīng)用程序

啟動Redis

redis-3.2.8 $ src / redis-server


要在Windows 10上安裝Redis,請訪問此Redis官方實驗室安裝指南并按照步驟操作。

關(guān)于Kue
Kue是一個運行在Redis之上的工作隊列。我們可以使用隊列將任務(wù)委派給多個worker,并節(jié)省處理時間。使用隊列系統(tǒng)完成高計算任務(wù),例如視頻渲染,文檔生成,繁重的數(shù)學(xué)計算。

我正在使用Kue演示如何使用該軟件以高效的方式設(shè)計和擴(kuò)展系統(tǒng)。

創(chuàng)建節(jié)點項目
創(chuàng)建一個新文件夾并使用終端或命令提示符切換到該文件夾。

mkdir pdfgeneration && cd pdfgeneration


使用以下命令創(chuàng)建新的Node項目。

$ npm init --y


讓我們安裝依賴項。我們需要kue和pdfkit依賴。

$ npm install --save kue pdfkit


真棒。讓我們編寫我們的應(yīng)用程序。

我將創(chuàng)建兩個命名job.js和worker.js的文件。

在Job.js中,我將編寫代碼來讀取文件或數(shù)據(jù)庫并創(chuàng)建一個Kue作業(yè)。

在Worker.js中,我將編寫代碼來收聽Kue主題并在請求到來時生成PDF文檔。

為簡單起見,這里有一些我將用于生成PDF文檔的條目。

invoice.js

模塊。exports = { 

內(nèi)容: [ {

' index ' : 1 ,

' text ' : ' 你好Shahid,你本月收取100美元的服務(wù)費。“

},{

' index ' : 2 ,

' text ' : ' 你好杰森,你這個月收取50美元的服務(wù)費?!?/p>

},{

' 指數(shù)' : 3 ,

' text ' : ' 你好Mark,你本月收取76美元的服務(wù)費?!?/p>

} ]

}


這是我們的Job.js代碼。

const kue = require (' kue ' ); 

const invoice = require(' ./invoice ');

const queue = kue 。createQueue();

function startJob () {

讓 invoiceData = invoice 。內(nèi)容;

invoiceData 。forEach(( singleInvoice ) => {

//推送隊列中的數(shù)據(jù)

讓 job = 隊列。創(chuàng)建(' 發(fā)票' , {

title : ` 生成發(fā)票$ { singleInvoice 。index } ` ,

模板: singleInvoice 。文字,

})。延遲(5000)。優(yōu)先級(' 高')。save(( err ) => {

if(! err){

控制臺。日志(' 工作加... ' + 工作。 ID);

}

});

});

}

startJob ();


在此代碼中,我們正在讀取存儲有關(guān)PDF文檔的信息的文件,對于每個條目,我們在隊列中創(chuàng)建一個新作業(yè)。

這是我們的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(作業(yè)。數(shù)據(jù),完成);

});

}

function generatePdfInvoice ( data , done ) {

讓 doc = new pdfKit ;

文檔。管(FS 。createWriteStream(` $ { __dirname } /發(fā)票/ $ {數(shù)據(jù)。標(biāo)題} .PDF `));

文檔。fontSize(14)。文本(數(shù)據(jù)。模板, 100 , 100);

文檔。結(jié)束();

完成();

}

startProcess();

KUE 。app 。聽(4000 );


在此代碼中,我們正在聽Kue主題即發(fā)票,并且在每個請求中,我們正在生成pdf文檔。PDF文檔的標(biāo)題應(yīng)該是唯一的,因此我們使用索引字段來維護(hù)唯一的標(biāo)題約定。
運行應(yīng)用程序
要運行應(yīng)用程序,請首先使用以下命令運行job.js.

$ node job.js


您應(yīng)該在終端中看到類似的輸出。

Nodejs中怎么利用Kue動態(tài)生成PDF文檔


現(xiàn)在使用以下命令運行worker.js .

$ node worker.js


要驗證作業(yè)是否已添加到隊列,請訪問localhost:4000以查看隊列。

Nodejs中怎么利用Kue動態(tài)生成PDF文檔

看完上述內(nèi)容,你們掌握Nodejs中怎么利用Kue動態(tài)生成PDF文檔的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)頁標(biāo)題:Nodejs中怎么利用Kue動態(tài)生成PDF文檔-創(chuàng)新互聯(lián)
鏈接分享:http://bm7419.com/article0/hdioo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、定制網(wǎng)站、App設(shè)計、手機(jī)網(wǎng)站建設(shè)商城網(wǎng)站、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)