位置: 编程技术 - 正文

Node.js中的缓冲与流模块详细介绍(node js并发加载缓慢)

编辑:rootadmin

推荐整理分享Node.js中的缓冲与流模块详细介绍(node js并发加载缓慢),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs中间层数据缓存,node.js 效率,node.js in action,nodejs cache,node缓存数据,node缓存数据,请简述node.js中缓冲类的用途?,node缓存数据,内容如对您有帮助,希望把文章链接给更多的朋友!

缓冲(buffer)模块

js起初就是为浏览器而设计的,所以能很好的处理unicode编码的字符串,但不能很好的处理二进制数据。这是Node.js的一个问题,因为Node.js旨在网络上发送和接收经常是以二进制格式传输的数据。比如:

- 通过TCP连接发送和接收数据; - 从图像或者压缩文件读取二进制数据; - 从文件系统读写数据; - 处理来自网络的二进制数据流

而Buffer模块为Node.js带来了一种存储原始数据的方法,于是可以再js的上下文中使用二进制数据。每当需要在Node.js中处理I/O操作中移动的数据时,就有可能使用Buffer模块。

类:Buffer

Buffer 类是一个全局变量类型,用来直接处理2进制数据的。 它能够使用多种方式构建。

原始数据保存在 Buffer 类的实例中。一个 Buffer 实例类似于一个整数数组

1.new Buffer(size):分配一个新的 buffer 大小是 size 的8位字节. 2.new Buffer(array):分配一个新的 buffer 使用一个8位字节 array 数组. 3.new Buffer(str, [encoding]):encoding String类型 - 使用什么编码方式,参数可选.

4.类方法: Buffer.isEncoding(encoding):如果给定的编码 encoding 是有效的,返回 true,否则返回 false。 5.类方法: Buffer.isBuffer(obj):测试这个 obj 是否是一个 Buffer. 返回Boolean6.类方法: Buffer.concat(list, [totalLength]):list {Array}数组类型,Buffer数组,用于被连接。totalLength {Number}类型 上述Buffer数组的所有Buffer的总大小。除了可以读取文件得到Buffer的实例外,还能够直接构造,例如:

Buffer与字符串类似,除了可以用.length属性得到字节长度外,还可以用[index]方式读取指定位置的字节,例如:Buffer与字符串能够互相转化,例如可以使用指定编码将二进制数据转化为字符串:.slice方法不是返回一个新的Buffer,而更像是返回了指向原Buffer中间的某个位置的指针,如下所示。

写入缓冲区这会将字符"a"写入缓冲区,node返回经过编码以后写入缓冲区的字节数量,这里的字母a的utf-8编码占用1个字节。

复制缓冲区

Node.js提供了一个将Buffer对象整体内容复制到另一个Buffer对象中的方法。我们只能在已经存在的Buffer对象之间复制,所以必须创建它们。

其中,bufferToCopyTo是要复制的目标Buffer对象。如下示例:

流模块

在UNIX类型的操作系统中,流是个标准的概念。有如下三个主要的流:

1.标准输入2.标准输出3.标准错误

Node.js中的缓冲与流模块详细介绍(node js并发加载缓慢)

可读流

如果说,缓冲区是Node.js处理原始数据的方式的话,那么流通常是Node.js移动数据的方式。Node.js中的流是可读的或者可写的。Node.js中许多模块都使用了流,包括HTTP和文件系统。

假设我们创建一个classmates.txt的文件,并从中读入姓名清单,以便使用这些数据。由于数据是流,这就意味着完成文件读取之前,从收到最初几个字节开始,就可以对数据动作,这是Node.js中的一个常见模式:

在以上示例中,在收到新数据时触发事件数据。当文件读取完成后触发关闭事件。

可写流

显然,我们也可以创建可写流以便写数据。这意味着,只要一段简单的脚本,就可以使用流读入文件然后写入另一个文件:

现在,当接收到数据事件时,数据会被写入可写流中。

readable.setEncoding(encoding):返回: this

readable.resume():同上。该方法让可读流继续触发 data 事件。

readable.pause():同上。该方法会使一个处于流动模式的流停止触发 data 事件,切换到非流动模式,并让后续可用数据留在内部缓冲区中。 类: stream.Writable

Writable(可写)流接口是对您正在写入数据至一个目标的抽象。

1.writable.write(chunk, [encoding], [callback]):

chunk {String | Buffer} 要写入的数据encoding {String} 编码,假如 chunk 是一个字符串callback {Function} 数据块写入后的回调返回: {Boolean} 如果数据已被全部处理则 true。

该方法向底层系统写入数据,并在数据被处理完毕后调用所给的回调。

2.writable.cork():强行滞留所有写入。

滞留的数据会在 .uncork() 或 .end() 调用时被写入。

3.writable.end([chunk], [encoding], [callback])

chunk {String | Buffer} 可选,要写入的数据encoding {String} 编码,假如 chunk 是一个字符串callback {Function} 可选,流结束后的回调在调用 end() 后调用 write() 会产生错误。

Node.js抓取中文网页乱码问题和解决方法 Node.js抓取非utf-8的中文网页时会出现乱码问题,比如网易的首页编码是gb,抓取时会出现乱码varrequest=require('request')varurl='

node.js集成百度UE编辑器 摘要:最近在搭建自己的博客,这一段时间可能没有时间来写博客了,但是有了好东西还是要分享给大家。博客网站必然要有编辑文章的编辑器,所以

NodeJs基本语法和类型 写在前面今天想要查下Node的类型什么的知识,想要总结下,在Googol上看到一个文章,但是原始的链接不在了,在快照中把这篇文章拉出来,如果原作者

标签: node js并发加载缓慢

本文链接地址:https://www.jiuchutong.com/biancheng/376442.html 转载请保留说明!

上一篇:Node.js node-schedule定时任务隔多少分钟执行一次的方法

下一篇:Node.js抓取中文网页乱码问题和解决方法(node.js抓包)

  • 缴纳上个月增值税要先计提吗
  • 企业利润分配如何缴纳所得税
  • 有金额的框架协议要交印花税吗
  • 总分机构 分总机构
  • 增值税起征点的规定只适用于
  • 企业所得税季报和年报的区别
  • 股东参与经营可以分红吗
  • 有没有退股一说
  • 会计凭证装订放哪些报表
  • 行政单位要考什么
  • 如何核销财政票据的发票
  • 股票投资收益是指投资者从购入股票开始到出售为止整
  • 公司采购报销没发票
  • 营改增后建筑公司账务处理
  • 进口小汽车消费税组成计税价格
  • 车辆挂靠收取管理费怎么做账
  • 报销个人费用如何定性
  • 退休人员返聘工资交个人所得税标准
  • 银行缴纳印花税的范围
  • 一般纳税人开3个点的票不能抵扣进项
  • 海关进口增值税怎么认证抵扣
  • 公司车辆高速费用能开增值税专用发票吗
  • 国税能代开什么费用的发票?
  • 发票上面税率地方为*号代表什么
  • 粮食仓储设施设备管理
  • 企业股权设计咨询这个行业怎么样
  • 建筑服务安装费发票需要备注什么
  • 非金融企业利息费用的扣除标准
  • 广播影视服务需要交文化事业建设费吗
  • 小规模企业所得税按季度还是按年
  • 生产车间的窗帘怎么处理
  • windows10更新怎么办
  • 设备拆装费计入什么科目
  • mac怎么彻底删除一个软件
  • 应交所得税和所得税费用的区别计算公式
  • 抵扣后增值税税率
  • 电脑连上WiFi上不了网怎么办?
  • 深度deepin系统安装教程
  • 承租人对经营租赁的会计处,怎么快速记住方法
  • 电脑开机后桌面图标变乱
  • removed.exe - removed是什么进程 有什么用
  • windows搭建dvwa
  • 物业公司成本费用
  • 跨省异地施工
  • php激活码永久
  • yolov1代码
  • ai绘画图片
  • 视觉机械臂操作视频
  • apt apt-get aptitude
  • java泛型简单例子
  • 以固定资产抵债发生的固定资产
  • 研发人员旅游能计入研发费用吗
  • 生产企业一般贸易出口退税流程解析
  • 差额征税小规模纳税人免税销售额栏次
  • 长期挂账应付款的处理方法
  • 工会经费的使用应当依法接受国家的监督
  • 普通发票如何抵扣税
  • 三方抵账协议做什么科目
  • 电脑属于固定资产哪类
  • 通过SQL Server的位运算功能巧妙解决多选查询方法
  • sql 建索引
  • windows vista安装光盘进入dos
  • linux统计重复次数
  • hyper v虚拟机
  • win10文字模糊怎么调整
  • 在Windows Server 2012中,管理员默认的用户名是
  • win8创建我的电脑
  • win10系统关闭安全中心
  • javascript ajax的5种状态介绍
  • mod兼容性
  • nodejs实现HTTPS发起POST请求
  • 实现非常简单的英文
  • js中截取字符串的方法
  • jQuery 中ajax异步调用的四种方式
  • 税控盘异常什么原因
  • 孵化企业税收优惠
  • 普洱房产管理局官网
  • 新企业会计准则长期待摊费用
  • 工商注册app是不是在手机上可以完全操作
  • 金水区地税局办事大厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设