如何将node.js可读流附加到Sendgrid电子邮件?

del*_*win 3 node.js sendgrid node-pdfkit

我正在使用PDFKit生成PDF.我正在使用Nodejitsu进行托管,因此我无法将PDF保存到文件中,但我可以将它们保存为可读流.我想在Sendgrid电子邮件中附加该流,如下所示:

sendgrid.send({
    to: email,
    files: [{ filename: 'File.pdf', content: /* what to put here? */ }]
    /* ... */
});
Run Code Online (Sandbox Code Playgroud)

我试着doc.output()无济于事.

小智 6

要将SendGrid nodejs API与流文件一起使用,只需将流转换为缓冲区即可.您可以使用stream-to-array将可读流转换为缓冲区.

var streamToArray = require('stream-to-array');

streamToArray(your_stream, function (err, arr) {
  var buffer = Buffer.concat(arr)
  sendgrid.send({
    to: email,
    files: [{ filename: 'File.pdf' content: buffer }]
  })
})
Run Code Online (Sandbox Code Playgroud)