tips: Api写法:Error-first Callback 和 EventEmitter
a) 在node的回调中错误优先
应该先定义错误的返回接收函数
- 回调函数的第一个参数返回的error对象,如果error发生了,它会作为第一个err参数返回,如果没有,一般做法是返回null。
- 回调函数的第二个参数返回的是任何成功响应的结果数据。如果结果正常,没有error发生,err会被设置为null,并在第二个参数就出返回成功结果数据。
1 | function(err, res) { |
语义上讲,非空的“err”相当于程序异常;而空的“err”相当于可以正常返回结果“res”,无任何异常。
b) EventEmitter
事件模块是 Node.js 内置的对观察者模式“发布/订阅”(publish/subscribe)的实现,通过EventEmitter属性,提供了一个构造函数。该构造函数的实例具有 on 方法,可以用来监听指定事件,并触发回调函数。任意对象都可以发布指定事件,被 EventEmitter 实例的 on 方法监听到。
1 |
|
c) buffer
Buffer: 是一个对象, 是一个构造函数; 实例:V8引擎分配的一段内存;基本是一个数组,整数值;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22new Buffer(123)
// <Buffer 31 32 33>
默认编码格式 utf-8
指定编码:
new Buffer('123', 'base64')
// <Buffer d7 6d>
长度:
var buf = new Buffer(8)
buf.length // 8
限制长度,写入会被截取
var buf = new Buffer(6)
buf.write('12345678')
buf // <Buffer 31 32 32 33 34 35> 6位 超出不会被缓冲
实例化数组,可以用下表读取到;
var buf = new Buffer([1,2.22,3])
buf[0] // 1
buf[1] // 2 [自动取证]
buffer转化
1 | > var buf = new Buffer('12345') |