我有这个错误,而#34;管道"节点中的文件:
events.js:160
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at exports._errnoException (util.js:1022:11)
at Pipe.onread (net.js:569:26)
这是我的代码:
var json_file = fs.createWriteStream(jsonFile),
processes = 0,
read_ended_flag = false,
converter = new Converter(params);
let read_csv_file = fs.createReadStream(csvFilePath);
// For each csv line, we get a json doc
converter.on('record_parsed', jsonObj => {
processes++;
json_file.write(JSON.stringify(jsonObj) + '\n', () => {
processes--;
if(read_ended_flag && processes == 0){
json_file.end();
callback();
}
});
});
converter.on('end_parsed', () => {
read_ended_flag = true;
});
read_csv_file
.pipe(converter);
我尝试使用this或this捕获错误,但仍然相同。 只有在处理小文件(> 100行)时才会出现此错误。
是否因为在写入新文件之前关闭了读取流?
非常感谢任何提示&帮助!
答案 0 :(得分:1)
我找到了解决方案! :)
这是由于我的转换器参数(csvtojson模块),我将workerNum设置为4,而不是我必须放1来处理小文件。
workerNum:工作进程数。工作进程将使用多核来帮助处理CSV数据。设置为Core的数量,以提高处理大型csv文件的性能。为小csv文件保留1。默认值为1。
Here是一个关于csvtojson模块的完整教程
希望它能帮助别人!