Node.js 全局对象(9)

9、Node.js 全局对象

在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global本身以外)都是 global 对象的属性。 在 Node.js 我们可以直接访问到 global 的属性,而不需要在应用中包含它。

阅读更多

Node.js 路由(8)

8、Node.js 路由

我们要为路由提供请求的URL和其他需要的GETPOST参数,随后路由需要根据这些数据来执行相应的代码。因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数。我们需要的所有数据都会包含在request对象中,该对象作为onRequest()回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的Node.JS模块,它们分别是urlquerystring模块。

阅读更多

Node.js函数(7)

7、Node.js函数

Node.js中函数的使用与Javascript类似:

1
2
3
4
5
6
7
function say(word) {
console.log(word);
}
function execute(someFunction, value) {
someFunction(value);
}
execute(say, "Hello");

以上代码中,我们把 say 函数作为execute函数的第一个变量进行了传递。这里返回的不是 say 的返回值,而是 say 本身!

阅读更多

Node.js模块系统(6)

6、Node.js模块系统

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

阅读更多

Node.js Stream流(5)

5、Node.js Stream(流)

Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对http 服务器发起请求的request 对象就是一个 Stream,还有stdout(标准输出)。
Stream有四种流类型:
Readable //可读操作。
Writable //可写操作。
Duplex //可读写操作。
Transform//操作被写入数据,然后读出数据。
所有的Stream对象都是EventEmitter的实例。

阅读更多

Node.js Buffer缓冲区(4)

4、Node.js Buffer(缓冲区)

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。

阅读更多

Node.js EventEmitter类(3)

3、Node.js EventEmitter 类

Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。
Node.js里面的许多对象都会分发事件:一个net.Server 对象会在每次有新连接时分发一个事件, 一个fs.readStream对象会在文件被打开的时候发出一个事件。 所有这些产生事件的对象都是 events.EventEmitter 的实例。
events 模块只提供了一个对象: events.EventEmitterEventEmitter 的核心就是事件触发与事件监听器功能的封装。
你可以通过require("events");来访问该模块:

阅读更多

NodeJs学习笔记(2)

2、Node.js 事件循环

Node.js 有多个内置的事件,我们可以通过引入 events 模块,并通过实例化 EventEmitter 类来绑定和监听事件,如下实例:

阅读更多