2

基本的に、たとえばファイルが100mb.qsあり、その内容全体を次の関数に渡す必要があります。

function process(in){
  var out = JSON.stringify(require('querystring').parse(in));
  return out;
}

そして、ファイルの内容を結果に置き換えます。

私はそれをストリーミングしなければならないと想像しているので...

require('fs').createReadStream('1mb.qs').pipe( /* ??? */ )

どうすればいいですか?

4

1 に答える 1

0

ストリームとしてclarinet解析するには、 を参照する必要があります。JSON

var createReadStream = require('fs').createReadStream
, createWriteStream = require('fs').createReadStream
, parseJson = require('clarinet').createStream()
;

parseJson.on('error', function(err){
  if (err) throw err
})

parseJson.on('onvalue', function(v){
  // do stuff with value 
})

parseJson.on('onopenobject', function (key) {
  // I bet you got the idea how this works :)
})

createReadStream('100mb.qs')
  .pipe(parseJson)
  .pipe(createWriteStream('newerFile.qs'))

他にもたくさんのイベントがありますので、ぜひご覧ください。
また、JSON ノードを書き込む準備ができたときはいつでも、データをダウンストリームに送信します。これ以上良くなることはありませんでした。

お役に立てれば

于 2014-05-18T06:36:23.847 に答える