基本上我有一个文件,比如说,100mb.qs我需要通过以下函数传递它的全部内容:
function process(in){
var out = JSON.stringify(require('querystring').parse(in));
return out;
}
然后用结果替换文件的内容。
我想我将不得不流式传输它,所以...
require('fs').createReadStream('1mb.qs').pipe( /* ??? */ )
我该怎么办?
基本上我有一个文件,比如说,100mb.qs我需要通过以下函数传递它的全部内容:
function process(in){
var out = JSON.stringify(require('querystring').parse(in));
return out;
}
然后用结果替换文件的内容。
我想我将不得不流式传输它,所以...
require('fs').createReadStream('1mb.qs').pipe( /* ??? */ )
我该怎么办?
你应该看看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 节点,它就会向下游发送数据。再好不过了。
希望这可以帮助