码迷,mamicode.com
首页 > 其他好文 > 详细

Node以数据块的形式读取文件

时间:2014-11-29 11:49:31      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   sp   文件   on   

  在Node中,http响应头信息中Transfer-Encoding默认是chunked。

Transfer-Encoding:chunked

  Node天生的异步机制,让响应可以逐步产生。

  这种发送数据块的方式在涉及到io操作的情况下非常高效。Node允许以数据块的形式往响应中写数据,也允许以数据块的形式读取文件。

  这样可以有高效的内存分配,不需要把文件全部读取到内存中再全部响应给客户,在处理大量请求时可以节省内存。

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


http.createServer(function(req,res){
    res.writeHead(200,{‘Context-Type‘:‘image/png‘});

    var imagePath = ‘D:/home.png‘;

    var stream = fs.createReadStream(imagePath);

    //一块一块的读取数据
    stream.on(‘data‘,function(chunk){
        res.write(chunk);
    });

    stream.on(‘end‘,function(){
        res.end();
    });

    stream.on(‘error‘,function(){
        res.end();
    });
}).listen(3000);

  Node还提供了一个更简洁的方法pipe()

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


http.createServer(function(req,res){
    res.writeHead(200,{‘Context-Type‘:‘image/png‘});

    var imagePath = ‘D:/home.png‘;

    var stream = fs.createReadStream(imagePath);
    stream.pipe(res);
    
}).listen(3000);

 

  bubuko.com,布布扣

Node以数据块的形式读取文件

标签:style   blog   http   io   ar   color   sp   文件   on   

原文地址:http://www.cnblogs.com/luxh/p/4130412.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!