fs.createreadstream 中是不是有类似“结束”的“开始”?

Posted

技术标签:

【中文标题】fs.createreadstream 中是不是有类似“结束”的“开始”?【英文标题】:Is there a "start" like "end" in fs.createreadstream?fs.createreadstream 中是否有类似“结束”的“开始”? 【发布时间】:2021-11-13 11:25:18 【问题描述】:

我正在使用 csv-parser 库,我想在解析它们之前检查表格标题

const fs = require('fs')
const csv = require('csv-parser')

fs.createReadStream('tes.csv')
        .pipe(csv())
        .on('start', start=>
            console.log(start)
//here i should check how column names are captioned
        )
        .on('data', data=>
            console.log(data)
//if they are captioned as requiered i do things
        )

我检查了文档,但没有找到任何关于它的内容,所以有一些东西可以使用,比如 .on('end', ()=>)? 还是有其他方法来获取列名?

【问题讨论】:

AFAIK 没有。我的建议是简单地使用第一个data 事件,使用.once 调用。然后,在其中附加 .on 调用。 【参考方案1】:

您可以通过headers 事件获取列名。 csv-parser 在标题行解析后发出 headers 事件。回调函数的第一个参数是Array[String],您可以访问列名或标题。 (more doc)

const fs = require('fs')
const csv = require('csv-parser')

fs.createReadStream('tes.csv')
        .pipe(csv())
        .on('headers', headers=>
            console.log(headers)
        )
        .on('data', data=>
            console.log(data)
        )

【讨论】:

更好了,谢谢解答

以上是关于fs.createreadstream 中是不是有类似“结束”的“开始”?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 中的 fs.ReadStream 和 fs.createReadStream 有啥区别吗?

node.js 中 fs.createReadStream 与 fs.readFile 的优缺点是啥?

如何将 fs.createReadstream 与 fs.promises 一起使用

为啥 fs.createReadStream ... pipe(res) 锁定读取文件?

request() 和 fs.createReadStream() 没有返回“正确”的值

NodeJs - 使用 fs.createReadStream 读取文件时出错