2012-11-16 7 views
3

JSONStream을 사용하여 큰 JSON 파일을 읽고 전체 스트림이 처리 될 때 메소드를 호출하려고합니다.이벤트 스트림을 사용하여 스트림 처리 끝내기

var JSONStream = require('JSONStream'), es = require('event-stream'); 

es.pipeline(
    fs.createReadStream('file.json'), 
    JSONStream.parse(['features', true]), 
    es.map(function (data) { 
    console.log("Added data"); 
    }) 
); 

어떻게하면됩니까?

답변

1

로 분류됩니다. 읽기 스트림을 변수에 저장하고 읽기 스트림에 on ('end', function)을 파이프합니다.

2

~ 200kB 파일 처리를 위해 'event-stream'을 사용했고 JSON을 내부에 포함하고 'event-stream'을 사용할 때 'end'이벤트가 호출되지 않을 때 문제가 발생했습니다. 이벤트 스트림 파이프 이후 그러나 파이프에 넣기 전에 모든 것이 정상적으로 작동합니다!

stream.on('end',function() { 
      console.log("This is the End, my friend");     
    }).on('error',function (err) { 
       console.error(err); 
    }).pipe(es.split()) 
     .pipe(es.map(function (line, cb) { 
       //Do anything you want here with JSON of line 
       return cb(); 
      })); 

,

관련 문제