大佬教程收集整理的这篇文章主要介绍了Node.js:将可读流管道拆分为多个顺序可写流,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
(上下文是将大量数据从管道上传到CDN,将其分成合理大小的块,而不必先将数据写入磁盘.)
我已经尝试创建一个Writable来处理_write函数中子流的打开和关闭,但是当传入的块太大而不适合现有的子流时会出现问题:它必须将一些块写入旧溪流;创建新流;然后在完成_write调用之前等待新流上的open事件.
另一个想法是创建一个额外的Duplex或Transform流来缓冲管道,并确保进入Writable的块肯定等于或小于现有子流可以接受的数量,以便给写入时间更改孩子流过来.
或者,这是否使一切过于复杂,并且有一种更简单的方法来完成原始任务?
我尽力改变我的代码,使其与您的问题更相关.然而,这很快就适应了.没有测试过.将其视为伪代码.
var fs = require('fs'),through = require('through'); var destCount = 0,dest,size = 0,MAX_SIZE = 1000; readableStream .on('data',function(data) { var out = data.toString() + "\n"; size += out.length; if(size > MAX_SIZE) { dest.emit("end"); dest = null; size = 0; } if(!dest) { // option 1. manipulate data before saving them. dest = through(); dest.pipe(fs.createWriteStream("log" + destCount)) // option 2. write directly to file // dest = fs.createWriteStream("log" + destCount); } dest.emit("data",out); }) .on('end',function() { dest.emit('end'); });
以上是大佬教程为你收集整理的Node.js:将可读流管道拆分为多个顺序可写流全部内容,希望文章能够帮你解决Node.js:将可读流管道拆分为多个顺序可写流所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。