您好,登录后才能下订单哦!
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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。