NodeJS / ECONNRESET在检索远程CSV文件

时间:2018-12-05 22:19:57

标签: node.js csv node.js-stream npm-request econnreset

这是我的第一个问题。我会尽力的。 首先,我要从我用来解决任务的软件包开始。

Node v8.10.0
NPM-Packages for this Task
requestretry(copy of request, with customizable retry attempts on errors)
Link: https://www.npmjs.com/package/requestretry
csv-parser
https://www.npmjs.com/package/csv-parser

我正在尝试以异步方式逐步读取16个CSV文件,并逐行浏览各行。检查该行的“ id”是否已在mongoDB集合中,并处理特定的情况。

我正在使用大小为〜75mb的文件测试这种情况。

用于测试的实际代码如下:

const request = require("requestretry");
const csv = require("csv-parser");

async function csvProcessing(csvFile) {
let results = [];
return new Promise((resolve, reject) => {
let counter = 0;
const csvReq = request({url:  csvFile,maxAttempts: 5}, {encoding: "utf8"}, 
  function(error,res,body) {if (error) console.log("Request error", error); });
try {
  csvReq.pipe(csv())
    .on("data", res => {
      console.log(counter, res);
      counter++;
    })
    .on("error", err => console.log("Error geworfen", err))
    .on("end", () => {
      console.log("End reached, Promise gets resolved, run func for nextFile");
      resolve(results);
    });
} catch (err) {
  console.log(err);
}
});
}

随机的事情是,每次我运行此csvProcessing(urlToCSVFile)函数并将行逐行记录到控制台时,它会停在 行号:〜139544 并在〜15秒后继续,并再次在 行号:〜235466 而且什么也不会做。

此处理有2种情况:  1.代码执行停止,我再也没有收到console.log消息,也没有错误,并且什么也没有继续  2.我确实收到错误消息:

"Error: read ECONNRESET  at TCP.onStreamRead"
Unhandled Stream Error: in pipe()

我正在查看我在这里可能发现的每个NodeJS EconnReset错误,但我所看到的只是从本地路径处理csvFiles的问题,因此我可以使用createReadstream,createWriteStream,但这不是我所需要的,或者我认为我不需要它。

我的问题是:  -有人对npm请求有类似的经历吗?  -我是Node的新手,我在俯视什么吗?  -可能是底层的TCP连接导致了此错误?  -一些想法,提示解决方案?

希望得到您的反馈并向大家学习

致谢

0 个答案:

没有答案