0

我正在尝试写入 DB,同时从流中的大 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`)
});
4

0 回答 0