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

在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);

01c9ec67a9ad5cb645514c849fe8e3ee.png

下面的内容你可能也喜欢:

Node.js 的详细介绍:请点这里

Node.js 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值