闲来无事,把node又拾起来看看
处在国企单位,整天闲的要死要死的,民族的花朵都快枯萎了
哎呀呀,打起精神.......早睡早起,多看书。。。开始进入苦读状态,苦练武功,争取有朝一日报效祖国。。。哈哈 开玩笑的
开始看书吧 记得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
方法:
.................................哟嘿 下班了 ...明天继续
闲来无事,把node又拾起来看看的更多相关文章
- babeljs源码
babel.min.js!function(e,t){"object"==typeof exports&&"object"==typeof mo ...
- Node入门(转)
原文链接:http://www.nodebeginner.org/index-zh-cn.html Node入门 作者: Manuel Kiessling翻译: goddyzhao & Gra ...
- 原生js编写的安全色拾色器
<html > <head> <meta http-equiv="Content-Type" content="text/html; cha ...
- Node初学者入门,一本全面的NodeJS教程(转载)
分类 JS学习 发布 ourjs 2013-12-02 注意 转载须保留原文链接,译文链接,作者译者等信息. 作者: Manuel Kiessling 翻译: goddyzhao &a ...
- Node.js 项目搭建
关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识.本书绝不是一本“Hello World”的教程. 状态 你正在阅读的已经是本书的最终版. ...
- e2e 自动化集成测试 环境搭建 Node.js Selenium WebDriverIO Mocha Node-Inspector
Node.js已经出来了许多年载,至今才开始接触.周未在家闲来无事,一时心血来潮,Google了大量的文章,经过实验,终于可以把整个环境给搭起来, 废话不多话,请看步骤. 特别注意, 本文章是针对Wi ...
- 【node.js】本地模式安装express:'express' 不是内部或外部命令,也不是可运行的程序或批处理文件。
今天闲来无事想起了node.js,因此到网上下载了一个node.js的安装程序进行安装.其中: 安装程序:node-v0.11.13-x64.msi PC系统:Windows 7 自定义安装路径:D: ...
- ROS机器人程序设计(原书第2版)补充资料 (拾) 第十章 使用MoveIt!
ROS机器人程序设计(原书第2版)补充资料 (拾) 第十章 使用MoveIt! 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. MoveIt ...
- 非node环境下的vue.js 实现简单的购物车计算功能 样式请无视
都说vue的双向数据绑定好用,自己用了下,感觉做购物车没想象中好用.自己的实现如下: <!DOCTYPE html> <html lang="en"> &l ...
随机推荐
- 字符串函数---atof()函数具体解释及实现(完整版)
atof()函数 atof():double atof(const char *str ); 功 能: 把字符串转换成浮点数 str:要转换的字符串. 返回值:每一个函数返回 double 值.此值由 ...
- (转)JVM工作原理和流程
作为一名Java使用者,掌握JVM的体系结构也是必须的. 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java ...
- 关于close和shutdown
我们知道TCP是全双工的,可以在接收数据的同时发送数据.假设有主机A在和主机B通信,可以认为是在两者之间存在两个管道.就像这样:A ---------> BA <--------- B 1 ...
- 前端MVC Vue2学习总结(三)——模板语法、过滤器、计算属性、观察者、Class 与 Style 绑定
Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解 ...
- 【java】多线程同步生产者消费者问题
package 多线程; class Producer implements Runnable{ private Data data; public Producer(Data data){ this ...
- 程序员的自我救赎---11.4:FileSystem文件服务
<前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...
- redis咋么实现分布式锁,redis分布式锁的实现方式,redis做分布式锁 积极正义的少年
前言 分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁.本篇博客将介绍第二种方式,基于Redis实现分布式锁.虽然网上已经有各种介 ...
- Io 异常: The Network Adapter could not establish the connection
新接触一个项目,导入源码,在本地启动的时候后台报了一个错误: Could not discover the dialect to use. java.sql.SQLException: Io 异常: ...
- MySQL集群PXC的搭建
MySQL集群PXC的搭建 最近公司某客户要求我们的数据库搭建PXC集群以保证他们的系统高性能和搞稳定性 以后花费了一些时间去搭建和测试,也踩过一些坑,准备分享出来 系统:centos6.6PXC:5 ...
- JavaScript的DOM编程--09--节点的替换
节点的替换: 1). replaceChild(): 把一个给定父元素里的一个子节点替换为另外一个子节点 var reference = element.replaceChild(newChild,o ...