为什么CreateReadStream不触发错误事件?

时间:2019-05-29 17:12:58

标签: node.js csv npm node-csv-parse

我正在尝试对csv文件进行一些错误处理。将文件名更改为不存在的名称时,
显示Error: ENOENT: no such file or directory, open 'testdat.csv',但不会触发on error事件。

这是当前的实现:

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

fs.createReadStream('testdat.csv')
    .pipe(csv())
    .on('open', () => {
    })
    .on('headers', (headers) => {
        validateHeader(headers);
    })
    .on('data', (data) => {
        temp.push(data);
    })
    .on('end', () => {
        validateData(temp);
    })
    .on('error', (err) => {
        console.log(err);
    });

1 个答案:

答案 0 :(得分:0)

您需要在管道传递之前附加错误事件处理程序。

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

var readable = fs.createReadStream('testdat.csv');

readable.on('error', (err) => {
    console.log(err);
});

// pipe function returns different stream
var writable = readable.pipe(csv())

writable.on('error', (err) => {
    console.log(err);
});