node核心技术系列

养病几天后又看了看node,总结一下node核心技术
node的三大特性:单线程、非阻塞I/O,事件驱动

1. node.js中的处理数据i/o

Node.js提供了‘Buffer’模块和'Stream'文件流,来处理大量的二进制数据。

(1)Buffer

缓冲区大小最大为1GB,是在内容中操作数据的容器,Node中Buffer操作有一下几种方式:

创建对象
  • var buf=new Buffer(size);//创建内存空间最新版的node中修改此方法,可用new Buffer.alloc(size),这样就没有警告了
  • var buf2=new Buffer([‘a’,‘b’]);//传入数组
  • var buf3=new Buffer(“hello”,“utf-8”);//传入字符串以及编码方式
写入缓冲区

buf.write(‘b’,0,1,‘utf-8’);//参数分别代表写入的数据,开始写入的索引值,写入的字节数,使用的编码,后三个参数可以不传,有默认值。

读取数据

buf.toString();//将二进制数据转换为字符串的形式

拼接缓冲区

var buf3=Buffer.concat([buf1,buf2]);

(2)Stream

前面说了Buffer缓冲区限制自1GB,这样的操作对于体积较大的文件,比如视频等文件,使用Buffer很容易“爆仓”,理想的方法是读一部分写一部分,比如在网络上观看视频。Node中Stream有四种类型:Readable、Writeable、Duplex、Transform

读/写操作(依赖于fs模块)

fs.createReadStream(path[,options]);//依赖于chunk操作,让用户可以在源文件中分块读取文件中的数据
fs.createWriteStream(path[,options]);//让用户可以将数据写入目标位置

使用pip()处理大文件实现复制功能

readableStream.pip(writeableStream);//将readable到的文件拷贝到writeable中去

3. 异步编程和包资源管理

4. node.js中的网络编程

5. node.js中的文件操作(require(‘fs’))

尽量异步进行文件操作,同步操作很容易阻塞进程。

(1)读文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值