nodeJs的基础知识(一)

nodeJS的REPL(read eval print loop 交互式解释器):表示一个电脑的环境,node自带了交互式解释器,可以执行以下任务:

1.读取:读取用户输入,解析输入了js数据结构并存储在内存中

2.执行:执行输入的数据结构

3.打印:输出结果

4.循环:循环1-3直到按下ctrl-c

(node中的解释器可以很好的调试js)


REPL的使用:

1.使用变量:变量声明var关键字,若没有var关键字会直接打印出来,使用var关键字的变量可以使用console.log()输出

2.多行表达式:node  REPL支持输入多行表达式(例如do  while循环)

3.下划线(_)变量:可使用下划线获取表达式的运算结果


nodeJS回调函数:nodeJS异步编程的直接结果就是回调,异步编程依托于回调来实现,但是不能说使用了回调就是异步了

var fs = require("fs");

fs.readFile('input.txt',function(err,data){

if(err){

  console.error(err);

}

console.log(data.toString());

})


nodeJS事件循环

1.node是单进程应用程序,但是通过事件和回调支持并发

2.node的每一个api都是异步的,并作为一个独立线程运行,使用异步函数调用并处理并发

3.node基本上所有的事件和机制都用设计模式中的观察者模式实现

4.node单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者

5.node使用事件驱动模型,当web server接收到请求,就把它关闭,然后去服务下一个web请求


node的内置事件,引入events模块,通过实例化eventEmitter类来绑定和监听事件:

var  event = requrie("event");

var eventEmitter = new event.eventEmitter()

eventEmitter.on("事件名",function);

eventEmitter.emit("事件名");


EventEmitter类:触发事件和事件监听功能的封装

方法:addListener(event,listener)

    on(event,listener)

    once(event,listener)

    removeListener(event,listener)

    removeAllListener(event,listener)

    setMaxListenner(event,listener)

    listeners(event)

    emit(event,[arg,],[arg2,],...]

    ListenerCount(emitter,event)

继承EventEmitter:大多数不会直接使用该类,而是在对象中继承它


nodeJS的Buffer(缓存区):该类用来创建一个专门存放二进制数据的缓存区(因为js没有二进制数据类型)

1.创建Buffer类:方法一:var buf = new Buffer(10)//创建长度为10字节的Buffer实例

方法二:var buf = new Buffer([10,20,30,40,50])//创建Buffer实例

方法三:var buf = new Buffer("www.run.com")//通过字符串来创建实例

2.写入缓存区:buf.write(string[,offset[,length]][,encoding]);//参数值分别为写入缓存区的字符串,缓存区开始写入的索引值,写入字节数默认为buffer.length,      编码方式默认utf8

3.从缓存区读取数据:buf.write([encoding][,start,[,end]]);//参数值分别为 编码方式,指定开始读取的索引,结束位置(默认缓冲区末尾)

4.将Buffer转换为JSon对象:buf.toJSON()

5.缓存区合并:Buffer.concat(list[,totallength])//参数的值分别为:用于合并的Buffer对象数组列表,指定合并后Buffer对象的总长

6.缓存区比较:buf.compare(otherBuffer)

7.拷贝缓存区:buf.copy(targetBuffer[,targetstart[,sourcestart[,sourceend]]])

8.缓存区裁剪:buf.slice([start[,end]]);//返回一个新的缓存区









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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值