使用 csv-parser 仅 return 文件 headers
Use csv-parser to only return file headers
我正在查看将 csv 文件解析为 JSON 的 NPM 包 csv-parser。根据提供的示例,您可以通过以下方式逐行读取csv文件:
fs.createReadStream('data.csv')
.pipe(csv())
.on('data', (rowData) => console.log(rowData))
.on('end', () => { console.log("done reading the file") });
有什么办法只能 return CSV 文件的 header 值吗?
您可以使用 headers 事件
fs.createReadStream('data.csv')
.pipe(csv())
.on('headers', (headers) => {
console.log(`First header: ${headers[0]}`)
})
来自官方文档
https://github.com/mafintosh/csv-parser#headers-1
Emitted after the header row is parsed. The first parameter of the event callback is an Array[String] containing the header names.
使用.on('headers', (headers)
事件
fs.createReadStream('data.csv')
.pipe(csv())
.on('headers', (headers) => {
console.log(headers)
})
除了这个答案https://whosebug.com/a/66756097/12285424,如果你只需要读取headers,你应该销毁读取流以阻止它解析整个文件,例如:
let myHeaders;
let readStream = fs.createReadStream('data.csv');
readStream
.pipe(csv())
.on('headers', (headers) => {
console.log(`First header: ${headers[0]}`)
myHeaders = headers;
readStream.destroy();
})
我正在查看将 csv 文件解析为 JSON 的 NPM 包 csv-parser。根据提供的示例,您可以通过以下方式逐行读取csv文件:
fs.createReadStream('data.csv')
.pipe(csv())
.on('data', (rowData) => console.log(rowData))
.on('end', () => { console.log("done reading the file") });
有什么办法只能 return CSV 文件的 header 值吗?
您可以使用 headers 事件
fs.createReadStream('data.csv')
.pipe(csv())
.on('headers', (headers) => {
console.log(`First header: ${headers[0]}`)
})
来自官方文档
https://github.com/mafintosh/csv-parser#headers-1
Emitted after the header row is parsed. The first parameter of the event callback is an Array[String] containing the header names.
使用.on('headers', (headers)
事件
fs.createReadStream('data.csv')
.pipe(csv())
.on('headers', (headers) => {
console.log(headers)
})
除了这个答案https://whosebug.com/a/66756097/12285424,如果你只需要读取headers,你应该销毁读取流以阻止它解析整个文件,例如:
let myHeaders;
let readStream = fs.createReadStream('data.csv');
readStream
.pipe(csv())
.on('headers', (headers) => {
console.log(`First header: ${headers[0]}`)
myHeaders = headers;
readStream.destroy();
})