Nodejs - 从Mongoose导出时出现“Write After End”错误

时间:2017-02-22 00:00:15

标签: node.js mongodb mongoose event-stream

我正在尝试使用event-stream nodejs将3 Mongoose find query的结果写入单个文件test.txt。

我的程序是这样的......

var es = require('event-stream');
var fs = require('fs');
var wstream = fs.createWriteStream('TestFile.csv');

mongoose.connection.on('connected', function () {  

//First Find Query
Model.find({"FirstId":{$exist:true}).cursor()
.pipe(es.map(function (data, callback) {

 var csv = json2csv({data:formated, fields:fields, hasCSVColumnTitle:false});
  callback(null, csv)
  }))
  .pipe(wstream);

//Second find query
Model.find({"SecondId":{$exist:true}).cursor()
.pipe(es.map(function (data, callback) {
if(data.Email)
{  
  var csv = json2csv({data:formated, fields:fields, hasCSVColumnTitle:false});
}
else{
callback();
}
  callback(null, csv)
}))
.pipe(wstream);


 //Third find query
 Model.find({"ThirdId":{$exist:true}).cursor()
 .pipe(es.map(function (data, callback) {
 if(data.Email)
 {  
  var csv = json2csv({data:formated, fields:fields, hasCSVColumnTitle:false});
 }
 else{
 callback();
 }
  callback(null, csv)
 }))
 .pipe(wstream);

  });

在这个程序中,我能够将每个查找查询结果分别写入文件。但是当我在程序中组合3-find查询时,它会抛出“写入结束”错误。

有人可以帮我解决此错误吗?

谢谢大家的时间!

0 个答案:

没有答案