【发布时间】:2016-04-18 14:20:35
【问题描述】:
设置:我正在从数据库中读取数据并将数据集作为 CSV 文件通过电子邮件发送。数据以 500 行为单位读取,我使用 ya-csv 将记录作为 CSV 写入流。然后我想使用mailgun-js 将文件作为附件通过电子邮件发送。
选项1(我不想做的):
- 创建临时文件;
- 为该文件创建写入流;
- 写入所有 CSV 记录;
- 将所有内容读回内存以附加到电子邮件中;
选项 2(我想做但不太知道如何做):
- 创建可写流;
- 创建可读流;
- 以某种方式将写入从 (1) 传输到 (2);
- 将可写流传递给 ya-csv;
- 将可读流传递给 mailgun;
- 获取数据并写入写入流,直到没有更多数据为止;
- 结束写入流,从而结束读取流并发送电子邮件。
我一直在阅读https://github.com/substack/stream-handbook和https://nodejs.org/api/stream.html,问题是我无法使用writable.pipe(readable);。
我尝试过使用Duplex 流(即写入和读取流都只是双工流),但这不起作用,因为双工是一个抽象类,我必须实现几个链接部分。
问题:如何使用流将这种 CSV 记录的写入链接到将附件流式传输到 mailgun?
【问题讨论】: