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");
  })
);

どうやってやるの?

4

2 に答える 2

4

内部に JSON を含む ~200kB ファイルの処理に「event-stream」を使用しましたが、event-stream の後に .on('end') を配置すると、「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();
            }));

于 2014-05-29T13:42:38.380 に答える
1

Sorted. Save the read stream in a variable and pipe an on('end', function) on that read stream.

于 2013-02-05T13:28:19.567 に答える