处在国企单位,整天闲的要死要死的,民族的花朵都快枯萎了
哎呀呀,打起精神.......早睡早起,多看书。。。开始进入苦读状态,苦练武功,争取有朝一日报效祖国。。。哈哈 开玩笑的
开始看书吧 记得Node.js+MonogoDB+AngularJs 这本书好像是去年4月份买的 买了好久了 一直没领会他的精髓 上班没事 绝对再看看 虽然对我的工作没什么帮助,哎呀呀 还是看吧.....................
一、node的事件模型:包含了事件队列、事件循环、线程池
二、实现定时器:
超时时间:延迟一段时间执行,只需要执行一次setTimeout();clearTimeout()取消超时时间函数
时间间隔:按定期的延迟时间间隔执行工作,对于定期工作setInterval();
即时计时器:setImmediate();允许你把工作调度为在时间队列中的当前事件完成之后执行,即在I/O事件的回调函数开始执行之后
process. nextTick:调度工作,在I/O时间被触发之前执行
从事件循环中取消定时器引用:unref()/ref()重新引用
三、事件发射器和监听器:
创建自定义事件:
四、Node.js处理数据:
数据形式有:文本、JSON字符串、二进制缓冲区、数据流
1、处理json
Json字符串转js对象:JSON.parse(String);转化为对象用点来访问
js对象转为JSON字符串:JSON.stringify();
2.使用buffer管理二进制的缓冲数据
(缓冲数据:有字节组成,比文本数据占用较少空间)
node.js提供buffer(缓冲区模块,全局性的,不需要require()引入)允许在缓冲结构中创建、读取、写入和操作二进制数据
创建缓冲区:new Buffer();
写入缓冲区:buffer.writer();
读取缓冲区:tostring();
确定缓冲区长度:buffer.length();返回的是字节长度
复制缓冲区:buffer.copy(new_buffer);
缓冲区切片:buffer.slice(start,end);
拼接缓冲区:Buffer.concat();
3.使用Stream模块来传送数据流
(stream模块是node的重要模块。数据流是可读、可写、或者即可读又可写的内存结构)
流的目的是从一个地方向另一个地方传送数据的通用机制;流一般用于HTTP数据和文件
Readable流(可读流):
常见实例:在客户端的HTTP相应、在服务器的HTTP请求、fs读取流、zlib流、crypto(加密)流、TCP套接字、子进程的stdout和stderr、process.stdin
公开事件:readable/data/end/close/error
方法:read():从流中读取数据。可以返回string对象、buffer对象或者null
setEncoding();设置从read()请求读取返回string的编码
pause();暂停从该对象发出的data事件
resume():恢复从该对象发出的data事件
pipe(de,[options]);把这个流的输出传输到由de目的地指定的writable流对象
unpipe():从写入的目的地断开这一对象
Writable流(可写流):
把数据写入一种可以轻松的在代码的另一个区域被使用的形式的机制
常见实例:客户端上的HTTP请求、服务骑上的HTTP响应、fs写入流、zlib流、crypto(加密)流、TCP套接字、子进程的stdin、process.stdout/process.stderr
公开事件:drain/finish/pipe/unpipe
方法:
.................................哟嘿 下班了 ...明天继续