Node.JS学习笔记二

1.在node中,Buffer类是随着node内核一起发布的核心库。Buffer库为Node.JS 带来了一种存储原始数据的方法,可以让Node处理二进制的数据。几个Buffer模块常用的方法如下:

①new Buffer(size);new Buffer(buffer);new Buffer(str,codetype);

②buf.length ; buf.write(string...);

③buf.toString() ; buf.toJson() ; buf[index];

④buf.equals(otherbuffer) ; buf.compare(otherbuffer) ; buf.copy() ; buf.slice() ;

2.node中的Stream(流)

①Node中有四种流类型:读流、写流、可读可写流和写入并读流。

var fs = require("fs");

var readStream=fs.creatReadStream("fileName");

②所有的Stream对象都是EventEmitter的实例,常用的事件有:

data:当有数据可读时触发;

end:没有更多的数据可读时触发;

error:在接收和写入过程中发生错误时触发;

finish:所有的数据已经被写入底层系统时触发。

③管道提供了一个输出流到输入流的机制:readStream.pipe(writeStream);可以将多个流组合成一个链式流。

3.模块是node应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个node文件就是一个模块,这个文件可能是JS代码、JSON或者编译过的C/C++扩展。

4.node提供了exports和require两个对象。其中exports是模块公开的接口,require用于从外部获取一个模块的接口,即获取模块的exports对象。

5.创建模块

①exports.apiFunc =function(){};

②function apiFunc(){};module.exports=apiFunc;(个人理解:exports对象被赋值为apiFunc对象);

注意:②相对于①的唯一变化是使用module.exports=apiFunc代替了①的写法。②在外部引用该模块时,其接口对象就是要输出的apiFunc对象本身,而不是原先的exports对象了。

6.Node.JS模块加载

①node模块分为核心模块和文件模块。核心模块:node标准API中提供的模块,可通过require直接获取;文件模块:JavaScript代码、JSON或者C/C++代码(编译好的)。

②加载顺序:

优先加载核心模块;

然后是以路径形式加载的文件模块;

最后既不是核心模块也不是以路径形式表示的模块,则现在当前目录下的node_modules目录中查找该模块是否存在。若不存在,则继续在其父目录的node_modules目录中查找,直到根目录为止。

6.node路由

①我们要为路由提供请求的URL和其他需要的GET和POST参数,随后路由需要根据这些数据来执行相应的代码。

②需要的以上所有数据都会被包含在request对象中,该对象会作为相应的回调函数的第一个参数传递。为了解析这些数据,需要额外的node模块,分别是URL和queryString模块。

你可能感兴趣的:(JavaScript)