nodejs核心模块

原创 xieshicoder 随笔 nodejs 370阅读 2017-05-05 08:13:42 举报

一、全局对象

  ####1、global对象---全局对象,所有的全局变量都是它的属性
  ####2、process--原来描述nodejs进程,用来写本地命令行程序
         #####2.1、process.argv--命令行参数数组(第一个数组元素:node,第二个数组元素:脚本文件名,之后的是运行参数)
         #####2.2、process.stdout---标准输出流(process.stdout.write(‘’),是console.log的底层实现)
         #####2.3、process.stdin--标准输入流
         #####2.4、process.nextTick(callback)
                Node.js 适合I/O密集的应用,而不是计算密集的应用,当一个事件计算量过大的时候,会阻止后面的事件处理,直到自己执行完成,这时可以通过nextTick将一个事件进行拆分,使部分操作挪到下次事件循环时进行。
  ####3、console
         #####3.1、console.log()
              console.log('123');
              console.log('hello %s how are you','xie');//hello xie how are you
         #####3.2、console.error()输出错误信息
         #####3.3、console.trace()输出调用栈

二、常用工具util

 #####util.inspect(obj,,,)
     obj---即需要转换的对象
     showhidden--是否显示更多隐藏信息
     depth--递归的层数,默认2
     colors--是否显示得更漂亮
 #####util.isDate()、util.isArray()、util.isRegExp()、util.isError()

三、events模块

 events是nodejs最重要的模块,nodejs是事件式的,所以events是nodejs编程的基石。
  ####1、事件发射器对象---events.EventEmitter
        events.EventEmitter核心是对事件发射和事件监听功能的封装

javascript 代码

  ####2、error事件
      当error事件没有监听的时候,程序会退出执行,所以需要为触发error事件的对象添加error监听
  ####3、继承EventEmitter
      通常在开发中,不直接使用EventEmitter对象,而是用其子类,这样做好处:更语义化一些

三、文件系统fs

fs模块所有操作都有同步和异步两个版本

1、读取fs.readFile和fs.readFileSync

fs.readFile('fileName',[encoding],[callback]) encoding可以省略,省略之后callback的data是二进制Buffer
javascript 代码

fs.readFileSync('fileName',[encoding])文件读取的同步版本

2、打开文件fs.open和fs.openSync

fs.open(path,flags[,mode][,callback(err,fd)]);
path--文件路径
flags--文件打开方式,如:r,r+,w,w+,a,a+
mode--文件不存在,创建时的文件操作权限
callback--回调函数。参数fd是一个非负整数,用来表示操作系统为当前进程维护的打开文件的记录表索引
fs.openSync(path,flags[,mode])
javascript 代码

3、fs.read

四、HTTP服务器与客户端

1、HTTP服务器

javascript 代码

上边的代码通过http.createServer创建了一个http.Server的实例,并通过listen监听3000端口

1.1、http.Serve中的r事件

每一次请求都会封装成一个事件:request事件、connection事件、close事件、checkContinue事件、upgrade事件、clientError事件

1.2、http.ServerRequest---请求信息的载体

http.ServerRequest是request事件监听的第一个参数,它有三个事件用来控制请求体传输:
---data,请求体到来时,该事件被触发,参数chunk表示接收到的数据
---end,请求体传输完毕,该事件被触发,之后就不会再有数据请求进来了
---close,用户请求结束之后触发

1.2.1、获取get请求

html 代码

1.2.2、获取post请求

获取post请求

1.3、http.ServerResponse

---writeHead(status[,headers])---设置响应的头信息,不设置的话会自动生成
---write(data[,encoding])---给客户端写数据,会调用多次
---end([data][,encoding])---告诉客户端响应结束,不调用的话,客户端会一直处于等待状态

2、HTTP客户端

2.1、http.request(options,callback)

options--参数数组
---host 域名或ip地址
---port 端口,默认80
---method 方法名:post、get
---path 请求路径,可包含查询字符串
---headers 头信息
callback--回调函数有一个参数,它是http.ClientResponse实例
http.request返回一个http.ClientRequest对象,它有write和end方法

2.2、http.get(options,callback)

http.get不用显式的调用end来结束请求发送

javascript 代码

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复