我尝试用(aprox .50 000行)读取文件并在mongodb中解析后保存每一行。 Mongodb保存功能是异步的。为了遍历文件,我使用了node-lazy模块。
我得到的是只有一部分记录保存在mongodb中(保存回调称为并非所有功能)
var stream = fs.createReadStream(inputFile)
new lazy(stream)
.lines
.map(String)
.forEach(function(line){
db[collection].save(parseLine(line), function(err){
if (err){
console.log(err)
} else {
count++;
}
})
}
)
所以没有错误,但是计数<实际记录(行)计数;
所以我想知道解决问题的最佳方法是什么。
UPD:
我通过在forEach中使用syncronios解析函数解决了这个问题,然后在完全读取文件时,我使用async.mapSeries将数据保存到mongodb。
但我仍然想知道是否有可能处理与节点懒惰的异步,我没有在文档中找到它,也许它只是不可能。