首页 > 代码库 > Node以数据块的形式读取文件
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);
Node以数据块的形式读取文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。