91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nodejs中怎么利用Kue動態生成PDF文檔

發布時間:2021-07-20 16:39:47 來源:億速云 閱讀:437 作者:Leah 欄目:web開發

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

先決條件

您需要安裝以下軟件:

  • Node.js最新穩定版。

  • Redis


您可以從官方站點安裝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


您應該在終端中看到類似的輸出。

Nodejs中怎么利用Kue動態生成PDF文檔


現在使用以下命令運行worker.js .

$ node worker.js


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

Nodejs中怎么利用Kue動態生成PDF文檔

看完上述內容,你們掌握Nodejs中怎么利用Kue動態生成PDF文檔的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蛟河市| 南宫市| 衡山县| 双峰县| 芒康县| 凤庆县| 太和县| 清苑县| 昭觉县| 襄汾县| 上虞市| 班戈县| 木里| 辛集市| 秦皇岛市| 桃源县| 囊谦县| 台北县| 东乌珠穆沁旗| 南乐县| 凌云县| 揭西县| 揭阳市| 耒阳市| 营口市| 裕民县| 台前县| 屯昌县| 昭觉县| 宁城县| 临夏市| 南平市| 邮箱| 宣城市| 麻江县| 如皋市| 武山县| 绥芬河市| 玛纳斯县| 宁都县| 怀化市|