如何使用pdf的pdf输出制作NodeMailer的附件邮件选项?

这是一个PDFMake的代码片段来创buildPDF文件 :

var pdfDoc = printer.createPdfKitDocument(docDefinition); pdfDoc.pipe(fs.createWriteStream('pdfs/absolute.pdf')); pdfDoc.end(); 

这里是NodeMailer的一个附件选项 :

 { // stream as an attachment filename: 'text4.txt', content: fs.createReadStream('file.txt') } 

我可以创buildpdf并将其保存到目录中的文件并将保存的文件附加到电子邮件中,但是我想直接将pdf的输出发送到电子邮件的附件内容,而不将pdf输出保存到文件

我试图了解nodejspipe道和streamfunction,但无法理解它们以满足我的要求。 我认为这应该是可以通过stream和pipe道,但不知道如何实现。

我想要防止保存PDF输出到文件,因为可以有多个用户使用创buildPDF文件和发送电子邮件的function。 当一个用户创build的pdf文件被另一个用户覆盖时,可能会出现这种情况。

您可以代替pipe道,将整个pdfdoc传递给附件

 var pdfDoc = printer.createPdfKitDocument(docDefinition); pdfDoc.end(); 

接着:

 attachments: { // stream as an attachment filename: 'text4.pdf', content: pdfDoc }