设置:我正在从数据库中读取数据并将数据集通过电子邮件发送为CSV文件。数据以500行的块读取,我使用ya-csv将记录作为CSV写入流。然后,我想使用mailgun-js将该文件作为附件发送电子邮件。
我一直在阅读https://github.com/substack/stream-handbook和https://nodejs.org/api/stream.html,问题是我无法使用writable.pipe(readable);
。
我尝试使用Duplex
流(即写入和读取流都只是双工流),但这不起作用,因为Duplex是一个抽象类,我必须实现几个链接部分。
问题:如何使用流将CSV记录的这种写入链接到流式传输邮件枪的附件?
答案 0 :(得分:0)
不要过度思考它,mailgun-js
可以将流作为附件,它可以像以下一样简单:
var csv = require('csv');
var mailgun = require('mailgun-js');
// this will stream some csv
var file = myDbStream.pipe(csv.stringify());
var data = {
from: 'Excited User <me@samples.mailgun.org>',
to: 'serobnic@mail.ru',
subject: 'Hello',
text: 'Testing some Mailgun awesomness!',
attachment: file // attach it to your message, mailgun should deal with it
};
mailgun.messages().send(data, function (error, body) {
console.log(body);
});
我不知道您的Db是什么,也许驱动程序已经支持流,或者您必须手动提供csv
(可以使用{{1}轻松完成})。
修改强>
event-stream
似乎无法轻易录音,ya-csv
效果更好。