我正在破解一个 Node 程序,该程序用于smtp-protocol捕获 SMTP 电子邮件并处理邮件数据。该库将邮件数据作为流提供,我不知道如何将其转换为字符串。
smtp-protocol
我目前正在使用 将其写入标准输出stream.pipe(process.stdout, { end: false }),但正如我所说,我需要字符串中的流数据,一旦流结束,我就可以使用它。
stream.pipe(process.stdout, { end: false })
如何将 Node.js 流中的所有数据收集到字符串中?
(这个答案来自几年前,当时它是最好的答案。现在下面有一个更好的答案。我没有跟上node.js,我无法删除这个答案,因为它被标记为“在这个问题上是正确的” “。如果你想向下点击,你想让我做什么?)
关键是使用Readable Streamdata的andend事件。收听这些事件:
data
end
stream.on('data', (chunk) => { ... }); stream.on('end', () => { ... });
当您收到data事件时,将新的数据块添加到为收集数据而创建的 Buffer 中。
收到end事件后,如有必要,将完成的 Buffer 转换为字符串。然后用它做你需要做的事情。