node事件机制

Node事件机制

一、Node事件处理机制

1.事件队列:将事件放入事件队列

2.事件循环机制:对事件队列中的事件进行轮询、检查,依次处理每个事件

3.事件监听:

(1)引入事件模块

(2)创建事件监听对象:EventEmitter

(3)注册监听:监听不同类型的事件(使用on函数)

4.触发事件:使用emit()函数

二、Node全局对象

1.全局变量

(1)__filename:指的是当前正在执行的脚本文件的名字。(以绝对路径显示文件名)

(2)__dirname:指向当前运行的脚本所在的路径。(以绝对路径显示文件所在目录)

2.全局对象

(1)console实例对象:

​ console.log(‘字符串’):输出到标准终端

​ console.error():输出错误信息

3.process对象:进程对象

(1)process.stdout:标准输出对象,该对象下的write方法和console.log方法作用相同

(2)process.stdin:输入对象,利用该对象可以从标准输入终端向node程序输入数据

4.全局函数

(1)setTimeout(cb,ms):cb表示的是一个回调函数,ms表示的是时间(单位是毫秒),表示至少多少毫秒以后调用函数

,返回的是一个可以清除的计时器对象

(2)clearTimeout(计时器对象):清除计时器

(3)setInterval(cb,ms):重复调用

(4)clearInterval(t):清除由setInterval()创建的计时器

(5)setImmediate(cb):即使计时器,没有时间间隔,创建即运行,返回的也是一个计时器对象

(6)clearImmediate(计时器对象):清除由setImmediate()创建的计时器对象

三、Buffer数据类型(对象)

1.Buffer是专门用于处理二进制数据的对象(接口):直接使用,不需要导入。

2.Buffer对象又称为缓冲区对象,它有一个构造函数,由构造函数创建的对象,v8引擎会为其分配一块内存

3.Buffer中存放的数据值是0~255之间的整数值,即一个字节的数据

4.创建Buffer实例的方法:

(1)使用new运算符

var 变量 = new Buffer([参数]);

(2)使用from函数

// 1.使用Buffer.from()创建
const buf1 = Buffer.from([1,2,3]);
console.log(buf1);

(3)使用alloc函数

// 2.创建一个长度为10的缓冲区,并使用0填充
const buf3 = Buffer.alloc(10);
console.log(buf3);

5.将Buffer中的数据转换为字符串:使用toString()函数,需要指定字符集(编码格式)

const buf6 = Buffer.from('tést');
console.log(buf6.toString('utf8',0,3));

6.将Buffer转换为JSON对象

(1)JSON(JavaScript Object Notation)对象:是前后端数据交换的常用格式,是以key-value的方式保存数据,由于体积小,创建方便,解析简单,所以被广泛使用。只要应用程序需要将结构化信息作为文本进行交换或存储,即可使用它。

(2)使用node的JSON对象进行转换:

const buf7 = Buffer.from([0x1,0x2,0x3,0x4,0x5]);
var json = JSON.stringify(buf7);
console.log(json);  //{"type":"Buffer","data":[1,2,3,4,5]}
console.log(typeof json); //string

7.向Buffer中写入数据

const buf8 = Buffer.alloc(256);
let len = buf8.write('\u00bd+\u00bc=\u00be',0);  //write函数的返回值是写入的字节数
console.log(`${len}个字节:${buf8.toString('utf8',0,len)}`);

8.从Buffer实例读取数据

const buf9 = Buffer.from([-1,5]);
console.log(buf9);
console.log(buf9.readInt8(0));
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值