2 node 核心

1 全局变量 - process

process 是一个全局变量,即 global 对象的属性。

它用于描述当前 Node.js 进程状态的对象,提供了一个与操作系统的简单接口。

通常在你写本地命令行程序的时候,少不了要和它打交道。

常用的有:

process.argv是命令行参数数组。

console.log(process.argv);

将以上代码存储为 argv.js,通过以下命令运行:

process.stdin是标准输入流,初始时它是被暂停的,要想从标准输入读取数据,你必须恢复流,并手动编写流的事件响应函数。

process.stdin.resume();
process.stdin.on('data', function(data) {
process.stdout.write('read from console: ' + data.toString());
});

 

2 常用工具 util

util 是一个 Node.js 核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能过于精简的不足。

我们知道,JS中的继承是通过将父类的实例赋值给子类来实现的。

在Node.js中,util.inherits(constructor, superConstructor)是一个实现对象间原型继承的函数。 

直接看代码吧:

var util = require('util');

function Base() {
    this.name = 'base';
    this.base = 1991;
    this.sayHello = function() {
        console.log('Hello ' + this.name);
    };
}

Base.prototype.showName = function() {
    console.log(this.name);
};

function Sub() {
    this.name = 'sub';
}

//通过该函数实现继承,不需要关注内部细节,大大方便了编程
util.inherits(Sub, Base);

var objBase = new Base();
objBase.showName();
objBase.sayHello();
console.log(objBase);

var objSub = new Sub();
objSub.showName();
//objSub.sayHello();
console.log(objSub);

注意, Sub 仅仅继承了 Base 在原型中定义的函数,而构造函数内部创造的 base 属性和 sayHello 函数都没有被 Sub 继承。

同时,在原型中定义的属性不会被 console.log 作为对象的属性输出。如果我们去掉 objSub.sayHello(); 这行的注释,将会看到:

 

3 事件驱动 events

events 是 Node.js 最重要的模块,没有“之一”,原因是 Node.js 本身架构就是事件式的,而它提供了唯一的接口,所以堪称 Node.js 事件编程的基石。 

events 模块只提供了一个对象: events.EventEmitter。 EventEmitter 的核心就是事件发射与事件监听器功能的封装。

 

posted on 2017-05-24 12:16  modDx  阅读(124)  评论(0编辑  收藏  举报

导航