0
我想知道如果流式传输数据并希望在流式传输后访问整个数据的良好做法;在Node.JS中流式传输
我流是这样的:
res._oldWrite = res.write;
res.write = function (chunk, encoding, cb) {
var decoded = chunk.toString(encoding);
write.write(new Buffer(decoded, encoding), encoding, cb);
return res._oldWrite.call(res, new Buffer(decoded, encoding), encoding, cb);
}
现在,我要访问我的数据我不喜欢的东西:
res._oldWrite = res.write;
var jsonData = '';
res.write = function (chunk, encoding, cb) {
var decoded = chunk.toString(encoding);
jsonData += decoded;
write.write(new Buffer(decoded, encoding), encoding, cb);
return res._oldWrite.call(res, new Buffer(decoded, encoding), encoding, cb);
}
res.on('finish', function(){
// Now I can have access to jsopnData but it is gross ; what is the right way?
})
但是是不是有什么更好的办法来做到这一点?
因此,您正在将数据流式传输到可写入流并希望访问该数据?你为什么不在你的自定义流中流到另一个流?然后你可以添加一个列表到第二个流来获取数据。 –
对不起,我没有明白你的意思,你可以告诉我你的解决方案在我的代码中... –
你应该**从流**中读取,而不是拦截'.write()'调用它! – Bergi