我正在入侵一个 node 程序,该程序使用smtp-protocol来捕获SMTP邮箱并对邮件数据进行操作.库以流的形式提供邮件数据,我不知道如何将其转换为字符串.

我目前正在用stream.pipe(process.stdout, { end: false })将其写入stdout,但正如我所说的,我需要字符串形式的流数据,一旦流结束,我就可以使用它.

如何从一个 node 收集所有数据.将js流转换成字符串?

推荐答案

(这个答案是几年前的,当时它是最好的答案.现在下面有一个更好的答案.我没有跟上node.js的进度,我不能删除这个答案,因为它标记为"关于这个问题的正确答案".如果你想下击,你想让我做什么?)

关键是使用Readable Streamdataend事件.听下面这些事件:

stream.on('data', (chunk) => { ... });
stream.on('end', () => { ... });

当您收到data事件时,将新的数据块添加到为收集数据而创建的缓冲区中.

当您收到end事件时,如有必要,将完成的缓冲区转换为字符串.然后做你需要做的事情.

Node.js相关问答推荐

使用OpenAI API时遇到问题

如何从shell脚本中计算ecmascript模块?

如何呈现ejs.renderFile中包含的子模板?

如何在Sequelize with Postgres中将m:n关联表ID从整数迁移到UUID?

在编译时强制不缩小类型范围

SvelteKit应用程序立即退出,没有错误

登录用户并获取他们的个人资料

如何调用同名的两个函数?

获取数组的至少一个元素包含子字符串的文档

在 NodeJS/ESP32 中通过 WebSocket 发送二进制数据 - 如何识别二进制和文本消息

Pug - 包括带有include关键字的c代码

如何在 NodeJS 中获取操作系统用户名?

用于排除多个文件的 node.js glob 模式

用一级 try ... catch 捕获 JavaScript Promise 中的错误

我可以有条件地将 where() 子句添加到我的 knex 查询吗?

npm WARN 不推荐使用 graceful-fs@3.0.8:graceful-fs 版本 3

什么是 JavaScript 中的REPL?

从 React(同构应用程序)进行 API 调用时出现Access-Control-Allow-Origin问题

如何从 Node.js 应用程序Ping?

使用 Node-sass 缩小 CSS