node.js - 如何自定义管道目标来解析读取流中的数据?

标签 node.js

我正在使用 nodejs 读取一个非常大的 csv 文件,但我不想将它们全部读入内存。下面是我的代码:

const s = fs
      .createReadStream(url, {
                flags: 'r',
                encoding: 'utf-8',
                fd: null,
                bufferSize: 1
            })
      .pipe( // what should I do here )

我不知道在 pipe 方法中要做什么。根据nodejs文档https://nodejs.org/api/stream.html#stream_read_pipe_destination_options,它需要一个Writable实例。我想知道是否可以将自定义逻辑作为可写的?

最佳答案

抱歉。

还没有 50 点声誉来发表评论。


可以写入多个内置函数和文件。

https://nodejs.org/api/stream.html#stream_readable_pipe_destination_options


也就是说,您应该查看一下 API。

https://nodejs.org/api/stream.html#stream_implementing_a_writable_stream

您可以在其中处理 block

_write(chunk, encoding, callback) {
    if (chunk.toString().indexOf('a') >= 0) {
      callback(new Error('chunk is invalid'));
    } else {
      callback();
    }
  }

关于node.js - 如何自定义管道目标来解析读取流中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49446005/

相关文章:

java - 我可以将 Node.js 应用程序打包为 Java EAR

json - Node.js JSON.parse 中的curl传输关闭问题

javascript - 如何获取两个日期时间之间的日期数组

javascript - 使用 MySQL 和 Node.js 更新查询

node.js - 使用NodeJS安装后无法识别包 'mongodb'

javascript - 保存 api token 的位置?

javascript - MongoDB:单次更新中的$push 多个对象和$pop 多个对象

javascript - API 输入验证和避免 Big If 语句

javascript - 发布功能完成后重新加载

node.js - MongoDB 和 Mongoose 中边界框的数据类型?