1.global对象作为全局对象的宿主
process对象:描述当前进程状态,提供操作系统的简单接口
参考:http://nodejs.org/api/process.html
console对象:提供控制台标准输出
2.常用工具util模块
util.inherits(sub,base):原型继承(sub,base都是构造器,sub继承base)
util.inspect(Object,[showHidden],[deepth],[color]):将任意对象转换为字符串(不会调用toString())
showHidden:true表示显示更多隐藏信息
deepth:对象递归层数,默认为2,null表示完整递归对象
color:表示按照ANSI颜色编码(更好看的显示)
参考:http://nodejs.org/api/util.html
3.事件驱动events模块(node.js的基石)
events模块只提供了一个对象EventEmitter(事件发射器)对象
EventEmitter.on(event,listener):为event事件注册一个监听器listener
EventEmitter.emit(event,[arg1…]):发射event事件
EventEmitter.once(event,listener):为event注册单次监听器listenter
EventEmitter.removeListener(event,listener)移除监听器
EventEmitter.removerAllListener([event]):移除所有监听器
参照:http://nodejs.org/api/events.html
error事件:通常为error事件绑定监听避免默认情况下当作异常导致程序崩溃退出
事件模块的使用:通常是继承EventEmitter对象
4.文件系统fs模块
fs.read(fd,buffer,offer,offset,length,position,[callback(err,bytes,buffer)]):从fd的position位置开始读取length字节数据写入buffer缓冲区从offset开始的位置,position为null表示从指针位置开始
参考:https://nodejs.org/api/fs.html
5.http模块
http.Server:一个基于事件的HTTP服务器
常用事件:
request:当客户端请求到来时触发,提供http.ServerRequest和http.ServerResponse的实例作为参数
connection:当TCP链接建立时触发,提供net.Socket的实例作为参数
close:当服务器关闭时触发(不是连接关闭时)
最常用的是request事件,所以提供快捷方法http.createServer([requestListener])创建一个HTTP服务器并将requestListener作为request的监听函数
http.request(option,callback):HTTP客户端工具,给callback回调传递一个http.ClientResponse实例,自身返回一个http.ClientRequest实例
http.ServerRequest:HTTP请求信息
包含的事件:
data:请求体数据到来时触发,提供一个chunk表示接收到的数据
end:请求体数据传输完成时触发
close:用户请求结束时触发(用户强制终止传输也调用)
http.ServerResponse:返回给客户端的信息
重要函数
writeHead(statusCode,[headers]):向请求的客户端发送响应头,最多调用一次
write(data,[encoding]):向请求的客户端发送响应内容
end([data],[encoding]):结束响应,如果不调用客户端永远处于等待状态
http.ClientRequest:表示正在进行中的HTTP请求
提供response事件:即调用http.request的回调监听的事件
提供write和end函数用于向服务器发送请求体,通常是POST/PUT等操作,必须调用end通知服务器
提供abort函数终止正在发送的请求
提供setTimeout函数设置请求超时
http.ClientResponse:客户端接收响应的对象,与serverResponse相似
提供data/end/close三个重要的事件
特殊函数:
setEncoding([encoding]):设置默认的编码,默认null不编码
pause:暂停接收数据和发送事件,方便实现下载功能
resume:从暂停的状态中恢复