读书笔记: nodejs 参考文档

>> buffer
Buffer对象是全局对象
Buffer支持的编码方式:ascii, utf8, base64, binary
new Buffer(size)
new Buffer(array)
new Buffer(str, encoding=‘utf8‘)

buffer.write(str,offset=0, encoding=‘utf8‘)
buffer.toString(encoding, start=0, end=buffer.length);

buffer[index]

Buffer.byteLength(string, encoding=‘utf8‘)
buffer.length //分配给buffer对象的内存大小 字节为单位

buffer.copy(targetBuffer, targetStart, sourceStart, sourceEnd=buffer.length)
buffer.slice(start, end);//返回引用同一段内存的buffer对象, 注意和str.slice()不同

>> eventEmitter
所有能够触发事件的对象都是 events.eventEmitter 的实例。
注册新的事件监听器时,会触发 newListener 事件
出错则触发 error事件,若没被捕获,则输出调用栈,并退出应用

* event: newListener
* event: error

* emitter.on(event, listener); //向监听器数组添加1个监听器
如:
server.on(‘stream‘, function(){
console.log(‘someone connected‘);
});

* emitter.removeListener(event, listener); //从指定监听器数组,移除指定监听器 (监听器数组重新调整索引 splice)
如:
var callback = function(stream){ console.log(‘someone connected!‘)};

server.on(‘stream‘, callback);
//...
server.removeListener(‘stream‘, callback);

* emitter.removeAllListeners(event)

* emitter.listeners(event); //返回指定事件的监听器数组

* emitter.emit(event, [arg1], [arg2],...); //触发事件

>> streams
stream是一个抽象接口,node中很多对象都实现了这个接口(如 request, stdout), stream对象是EventEmitter的实例。
stream可以是 只读,只写,可读可写 的

> readable stream 只读流
只读流的方法、属性和事件

* event:data
stream.on(data, function(data){
//data: buffer or string (若调用过setEncoding())
});

* event:end
流遇到EOF或TCP中的FIN时触发,表示不会再有数据进来
stream.on(‘end‘, function(){ });

* event:error
stream.on(‘error‘, function(exception){ });

* event:close
内部的文件描述符被关闭时触发
stream.on(‘close‘,function(){ });

* event:fd
当数据流接收到文件描述符信息时触发 (一个文件的数据流信息包括2部分:文件描述符信息和文件的数据信息) unix流
stream.on(‘fd‘, function(fd){ });

* stream.readable

* stream.setEncoding(encoding);
设置data事件返回的是字符串而不是buffer对象,编码方式有:ascii, utf8, base64

* stream.pause(); //暂停触发data事件

* stream.destroy();
关闭内部的文件描述符,这样流不会再触发任何事件

> writable stream 可写流
可写流的方法、属性和事件:

* event:drain
在一个write方法被调用并返回false后触发,表示可安全地再次写入该stream
stream.on(‘drain‘, function(){ });

* event:error
stream.on(‘error‘, function(exception){ });

* event:close
当底层的文件描述符已终止时触发
stream.on(‘close‘, function(){ });

* stream.writable

* stream.write(string, encoding=‘utf8‘,[fd]);
用指定的编码方式编码字符串后写入流中,若字符串被成功刷新到内核缓冲区则返回true, 否则返回false, 数据在未来写入。
drain事件通知内核缓冲区何时为空

* stream.write(buffer); 同上

* stream.end();
通过EOF或FIN来终止流

* stream.end(string, encoding); //~~相当于 stream.write(string, encoding) 后,stream.end()

* stream.end(buffer); //同上

* stream.destroy();
终止底层的文件描述符,之后流不会发出任何事件

>> global objects 全局对象

* global
全局命名空间对象 ~~类似于浏览器环境下的window?

* process 进程对象

* require() 加载依赖模块

* require.paths
一个保存了require函数搜索路径的数组,可往里面添加自定义路径

* __filename
当前正在执行的脚本的绝对路径

* __dirname
当前正在执行脚本的文件夹

* module
指向当前模块的引用, module.exports 和 exports指向同一个引用

> process 进程
process对象是EventEmitter的实例

* event:exit
进程退出时触发,是检查模块状态的好地方(如单元测试)
process.on(‘exiti‘, function(){ });
如:
process.on(‘exit‘, function(){
process.nextTick(function(){//下一次事件循环
console.log(‘this will not run‘);
});
console.log(‘about to exit‘);
});

* event:uncaughtException 未捕获异常
process.on(‘uncaughtException‘, function(error){ });
如:

时间: 2024-07-30 14:43:10

读书笔记: nodejs 参考文档的相关文章

教您怎么从spring 官网下载参考文档

假如您使用spring,那么本经验可能帮助到您. 假如您使用spring的过程中,需要查询一些文档,那么本经验可能帮助到您. 假如您对下载spring的文档有疑惑,那么本经验可能帮助到您. 教您怎么从spring 官网下载参考文档,首先需要明确您是需要什么文档. 方法/步骤1 首先,在百度搜索spring关键词,选择的是第一个网站. 打开spring页面,是很清爽干净的页面.点击右上角的docs菜单. 打开docs页面,会显示documents,可以看到各种各样的文档规整. 比如您要查找:Spr

微信小程序 不在以下合法域名列表中,请参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html

微信小程序  不在以下合法域名列表中,请参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html 友情提示: 大家在开发的时候,可以使用我的网站地址进行测试 配置 request 合法域名  https://liaolongjun.duapp.com request 可以拷贝下面的,不用做任何修改 wx.request({    url: 'https://liaolongjun.duapp.com/ace/h

【参与翻译】Spring4.x框架参考文档

Spring4.x框架参考文档 为了不出现重复翻译Spring4参考文档,专门发此文进行通知,同时也希望有兴趣参与翻译的参与进来. 项目地址:  http://git.oschina.net/free/spring-framework-reference 基本说明 Spring文档为adoc格式,文件已经按基本的章节拆分为多个adoc文件,该文件在src/asciidoc/chapter路径下. 参与翻译 首先加QQ群Team翻译小组:111763438 进群后,会先发申请链接,加入OSC的Te

CSS 参考文档

转自http://web.jobbole.com/82857/ 我们已经在 Codrops 上发布了新章节:CSS 参考文档.我们现在就来谈谈它,看看究竟加了什么新特征让学习 CSS 变得更简单实际. Codrops 是最励志的网站之一.是的,我是有些偏袒的,但我肯定你也同意这一事实. 如果你正在寻求灵感,那你在这里就可以找到许多创意资源,它们能让你的脑袋里也会浮现一两个想法.我喜欢这个网站的理由之一是:Manoela 和 Pedro 提供的资源一定会给我们留下深刻印象. 如果你在寻找如何学习使

Oracle官网下载参考文档

最近有人问我有没有Oracle11g数据库官方参考文档,我就想,这不是在官网可以下载到的吗,疑惑,问了之后才知道,他官网找过,但时没有找到.不要笑,其实有很多人一样是找不到的,下面就一步一步操作下: 1.打开浏览器,输入网址 :www.oracle.com(这步不会的话,建议你可以改行了) 2.找到Menu-->OTN -->Documentation-->Database  点击database后跳转到新的界面 3.选择版本,这里以11gR2为例 5.选好版本后,拉到页面最下面找到do

最新的高通平台驱动开发参考文档

花了很多大功夫才得到这最新的高通平台驱动开发参考文档,毕竟完整的文档比较难找,同时也希望能帮到大家,现在无偿分享,希望志同道合的人能够一起学习,这文档我上传到闯客网技术论坛,更多高通芯片的资料都有,有兴趣的小伙伴可以到上面下载,同时这是我们的高通交流群:613377058,让我们一起同行下载地址:https://bbs.usoftchina.com/thread-199500-1-1.html 简介目录最新的高通平台驱动开发参考文档第1章 前言? ?? ???31.1 文档目的及开发背景? ??

Mongoose学习参考文档

一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对 Entity : 由Model创建的实体,他的操作也会影响数据库 注意: 1.本学习文档采用严格命名方式来区别不同对象,例如: var PersonSchema; //Person的文本属性 var PersonModel; //Person的数据库模型 var PersonEntity; //Person实

在线教程-Qt参考文档

网站首页 | 教程主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 本文转载自:齐亮的个人主页-Qt参考文档 请勿把本文作商业性的引用 Qt参考文档 初步了解 进一步了解 最新动态 关于Qt Qt的版本 常见问题解答 Window系统特性注释 如何购买Qt 安装 如何学习Qt 教程一, 教程二 实例 循序渐进实例 白皮书 Qt 3.0的关键特征 修改历史 从Qt 2.x移植到Qt 3.x 简体中文汉化日志 Qt季刊 API参考 模块 概述 所有的类 主要的类 分组的类 注释

Hive 的简单使用及调优参考文档

Hive 的简单使用及调优参考文档 ? HIVE的使用 命令行界面 使用一下命令查看hive的命令行页面, hive --help --service cli 简化命令为hive –h 会输出下面的这些东西 -d,--define <key=value> Variable subsitution to apply to hive commands. e.g. -d A=B or --define A=B --database <databasename> Specify the d