Node.js stream 流学习

时间:2022-04-15 02:43:50

由于node.js 创建http 是这样的

 http.createServer(function(request,response){}).listen(2000);

里面的request 就是reader stream

response 就是write stream

写个网站的都知道request 和response的区别

懂点http的就知道

当上传一个文件的时候,

是把字节上传上去的. 有时候,写限制下载.就是读取流的时候限制下而已

readstream  会触发2个事件

一个是接收流的事件 data

一个是接收完毕后的事件 end

Node.js stream 流学习

so

写一个上传文件夹的事例,丙得到上传进度

var http=require('http');
 var fs = require('fs');

 http.createServer(function(request,response){
 //把读取的内容,写到文件里面.注意权限问题
   var newfile = fs.createWriteStream("D:abc.md");
//获取上传文件的大小
     var fileBytes = request.headers["content-length"];

     var uploadedByte=0;

     request.pipe(newfile);

     request.on('data',function(chunk){
        //递增.累加
         uploadedByte+=chunk.length;
         var progress=(uploadedByte/fileBytes)*100;
         response.write("progress:"+parseInt(progress,10)+"%n");

         console.log(parseInt(progress,10)+"%n");//事实输出进度.方便看
     });

     request.on('end',function(){
                        response.write("over");
         response.end();
     });

 }).listen(3000);

Node.js stream 流学习

可以看到.进度输出.

那么怎么测试呢

上传,其实也就是post.直接用fiddle.就行了

Node.js stream 流学习

当执行的时候.会把状态输出出来

Node.js stream 流学习

待续!  总觉得有点问题..

]]>