Ошибка при чтении файла. Превышен максимальный размер стека вызовов при попытке создать элемент с мангустом в потоке

Я пытаюсь записать в БД, читая из большого файла CSV в потоке, но все, что я получаю, это ошибка "Превышен максимальный размер стека вызовов". И всегда после 12969 строки. Если я не сохраняю в БД, все в порядке. Мой пример кода:

const s = fs.createReadStream(path.resolve(__dirname, '../../data.csv'))
.pipe(csv.parse({delimiter: ';', columns: true }))
.pipe(es.mapSync(line => {
  s.pause();

  if(validate(line)){
    const newStation = new Station({
      ...line
    });

    newStation
      .save()
      .then((item) => {
        overlaps++;
        s.resume();
      }).catch(err => {
        console.log(err.message);
        s.resume();
        throw err;
      });
  }else{
    s.resume();
  }
}))
.on('error', function(err){
  res.end(`Reading error: ${err.message}`);
  console.log('Error while reading file.', err.message);
})
.on('end', function(){
  res.end(`Done reading, items: ${overlaps}`);
  console.log(`Done reading items`)
});

0 ответов

Другие вопросы по тегам