如何在NodeMailer的附件邮件选项中使用PDFMake的pdf输出?

Rit*_*gga 1 pdf email node.js nodemailer pdfmake

以下是PDFMake 创建pdf文件的代码片段之一:

var pdfDoc = printer.createPdfKitDocument(docDefinition);
pdfDoc.pipe(fs.createWriteStream('pdfs/absolute.pdf'));
pdfDoc.end();
Run Code Online (Sandbox Code Playgroud)

这是NodeMailer中的附件选项之一:

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

我能够创建pdf并将其保存到目录中的文件并将该保存的文件附加到电子邮件中但我想直接将pdf的输出发送到电子邮件的附件内容而不将pdf输出保存到档案.

我试图了解nodejs管道和流功能,但无法理解它们以满足我的要求.我认为应该可以通过流和管道,但不知道如何实现.

我想阻止将pdf输出保存到文件,因为可能有多个用户使用创建pdf文件和发送电子邮件的功能.当一个用户创建的pdf文件被另一个用户覆盖时,可能会出现这种情况.

mit*_*ght 5

你可以代替管道,将整个传递pdfdoc给附件

var pdfDoc = printer.createPdfKitDocument(docDefinition); 
pdfDoc.end();
Run Code Online (Sandbox Code Playgroud)

然后:

attachments: {
    // stream as an attachment
    filename: 'text4.pdf',
    content: pdfDoc
}
Run Code Online (Sandbox Code Playgroud)