Node.js web服务器文件读取

当采用Node.js搭建服务器需要响应浏览器发送的资源请求,服务端应该如何进行磁盘管理操作

由于文件我们预先是不是知道的

var http=require('http')
http.createServer(function(req,res){
res.end()})

请求资源一般是要在req.url进行解析获取到资源的路径,这里我假设已近得到了路径path

读取文件方式

文件模块对文件的读取常规方法fs.readFile(),fs.readFileSync()

首先采用同步方法,这种方法会堵塞执行,不可取

第二种是异步方法,只要在读取完成之后在回调函数中获取,这也是要等待许久(如果文件过大的话)也不可取

还有一个种方式以文件流的形式传输,fs.createReadStream(path)

通过事件监听

var stream=fs.createReadStream(path)
stream.on('data',function(chunk){
res.write(chunk)})
stream.on('end',function(){
res.end()})

这样书写形式不是最简单

fs.createReadStream(path).pipe(res)

不在采用事件监听的形式,从数据起始到传递由管道自动去执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值