NodeJS / ECONNRESET приводит к ошибке при получении удаленного CSV-файла - PullRequest
0 голосов
/ 06 декабря 2018

это мой первый вопрос здесь.Я сделаю все возможное.Прежде всего, я начну с моих пакетов, которые я использую для решения задачи.

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-файлов, пошагово асинхронно и пройтись по строкам, строкепо линии.Проверьте, находится ли «идентификатор» строки в коллекции mongoDB, и обработайте конкретную ситуацию.

Я тестирую этот сценарий с файлом размером ~ 75 МБ.

Фактический код для целей тестирования выглядит следующим образом:

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, но это не то, что мне нужно, или я думаю, что мне это не нужно.

Мои вопросы: - есть кто-то похожийопыт с просьбой нпм?- Я новичок в узле, я что-то пропускаю?- это, вероятно, основное соединение TCP, которое приводит к этой ошибке?- некоторые идеи, подсказки для решения?

Хотелось бы получить ваши отзывы и учиться у вас, ребята

regards

...