我是NodeJS的新手,在我的应用程序中,我使用pdfkit创建pdf。
有时当我调用我的方法时,我收到错误:
Error: write after end
at writeAfterEnd
at PDFReference.Writable.write
at PDFPage.write
每次都不会发生,它有点随机。 我知道我在写之前尝试关闭文档(异步方式),但我不明白如何处理它。
我的路线:
app.post('/api/contests/:_id/ranking', contestController.print_ranking);
function print_ranking(req, res) {
var path = null;
Contest.findById(req.params._id, function (err, contest) {
path = Print.print_ranking(contest, req.body);
format_response(res, 200, {'path': path});
});
}
我的打印功能:
const PDFDocument = require('pdfkit'),
doc = new PDFDocument(),
fs = require('fs');
function print_ranking(contest, ranking) {
var start_line_x = 40, x_end = 545, start_y = 40;
doc.pipe(fs.createWriteStream('public/printed/' + contest._id + '_ranking.pdf'));
doc.text('Category : ' + '', start_line_x, start_y);
// [ ... ]
doc.end();
return 'printed/' + contest._id + '_ranking.pdf';
}
正如我所说,有时,一切顺利,有时候不是......
如果您有任何线索。
感谢。