Javascript 如何解决readstream文件上的forEach错误?

Javascript 如何解决readstream文件上的forEach错误?,javascript,node.js,Javascript,Node.js,当我在forEach之后调用aysncFiles()方法时,我看到下面的错误,当我们使用异步库时,如何解决readstream问题 基本上,只想从客户机中整理出与开始日期和结束日期匹配的文件 ctrl.js function readFile(searchObj,callback) { searchStr = searchObj.searchTxt; searchStartDate = searchObj.searchStartDate; searchEndDate =

当我在forEach之后调用
aysncFiles()
方法时,我看到下面的错误,当我们使用异步库时,如何解决
readstream
问题

基本上,只想从客户机中整理出与开始日期和结束日期匹配的文件

ctrl.js

function readFile(searchObj,callback) {
    searchStr = searchObj.searchTxt;
    searchStartDate = searchObj.searchStartDate;
    searchEndDate = searchObj.searchEndDate;
    var filesData = {};
    var readStream;
   if (searchObj.searchEnv === 'st') {
        stDirectory.readDirectory(function(files){
        filesData.logFiles = files;
        var sortedFiles = [];
        filesData.searchEnv = searchObj.searchEnv;
        filesData.logFiles.forEach(function(file){
                 // move this in front of the loop
             var fileDate = new Date( file.fileDate ).getTime();
             var searchStartDate = new Date( searchStartDate ).getTime(); // add missing
             var searchEndDate = new Date( searchEndDate ).getTime(); //     `var`s
             if (fileDate - searchStartDate > 0 && searchEndDate - fileDate > 0) {
                 console.log('File Date',file);
                 sortedFiles.push(file);
             }
        });
         filesData.logFiles = sortedFiles;
         console.log(filesData.logFiles);
         asyncFiles(filesData); // Now being called
     });
    } 

    // loop through each file
  function asyncFiles(filesData) {
  async.eachSeries(filesData.logFiles, function (logfile,done) {
        // read file
        var results = [];
        readStream = fs.createReadStream('./logs/' + filesData.searchEnv  + '/'+ logfile.filename,'utf8')
         readStream.pipe(split())
          .on('data', function (line) {

              done();
    }
    , function (err) {
        if (err) {
            console.log('error', err);
        }
       readStream.on('end',function(){
        callback(matches);
       });
       matches = [];
    });
  }

}
错误

 readStream.on('end',function(){
                 ^

TypeError: Cannot read property 'on' of undefined

错误是什么?你有一堆,包括
search…
matches
readStream
将不会初始化,当
filedata.logFiles
为空时,将立即调用最终回调。
data
事件会多次触发。您正在为目录中的每个文件创建一个新流。那真的不行。你们打算如何处理这些数据?我正在将数据发送回客户端进行UI显示