逐行读取文件,然后在完成时执行一些操作(NodeJS)

时间:2017-07-17 20:34:50

标签: javascript node.js

我正在读一个大文件(19MB)并将数据插入我的猫鼬DB。一切正常,除非迭代完毕我的控制台只是坐在那里。如何让我的程序让控制台退出,或者在完成时执行一个函数?

function prepareDatabase(){
  let lineReader = require('readline').createInterface({
    input: require('fs').createReadStream('names.tsv')
  });

  lineReader.on('line',(line)=>{
    let elements = line.split('\t');
    let Entry = new ChebiEntry();
    Entry.name = elements[4]
    Entry.id = elements[1];
    Entry.save();
    console.log(`Inserted ${Entry.name}`);
  });
  return; // This does not do anything?!
}

1 个答案:

答案 0 :(得分:1)

读取器确实在读取整个文件时有回调。

lr.on('end', function () {
    process.exit();
});