Node.js入门基础知识

Node.js基础知识

/////////////////////////////////////////////////////////
Node.js控制台
1 console.log()与console.error()

console.log("字符串");

console.log("%s", "字符串1", "字符串2");
console.log("%d", 10,10.5);

2 console.dir方法(查看一个对象内容并输出到控制台)

var user = {"name": "vfeelit"};
console.dir(user);

3 console.time()和console.timeEnd()
两个方法都接收一个参数,参数值可以为任何字符串,但两个方法所使用的参数字符串必须相同才能正确统计出开始和结束时间之间锁经过的耗秒数。

4 console.trace方法
将当前位置处的栈信息作为标准错误信息进行输出。

5 console.assert方法
对一个表达式的执行结果进行评估。如果结果为false,则输出一个消息字符串并抛出AssertionError异常。

/////////////////////////////////////////////////////////
Node.js全局作用域及全局函数
1 全局作用域
Node.js中,定义了一个global对象,代码Node.js中的全局命名空间,任何全局变量、函数或对象都是该对象的一个属性值。

2 setTimeout与clearTimeout
3 setInterval与clearInterval
4 定时器对象的unref方法与ref方法

5 与模块相关的全局函数与对象
5.1 require函数加载模块

var f = require('../f.js');
var h = require('http');

模块在首次加载后将缓存在内存缓冲区中。这意味对于相同模块的多次引用得到的都是同一个模块对象,对相同模块的多次引用不会引起模块内代码的多次执行(但是引用到同一个模块,可看成是代码空间,第一运行载入内存)。

5.2 require.resolve()查询完整模块名

5.3 require.cache对象
在Node.js中,定义了一个require.cache对象,该对象代码缓存了所有已被加载模块的缓冲区。可用console.log(require.cache)来查看缓冲区中的内容。require.cache对象具有一个“键名/键值”结构,键名为每个模块的完整文件名,键值为各模块对象,可通过键名访问某一个模块:

require.cache["模块文件名"];
console.log(require.cache[require.resolve('./tm.js')]);

可用delete关键字删除缓存区中的缓存的某个模块对象。

delete require.cache[require.resolve('./tm.js')];

6 __filename 与 __dirname变量
用于获取当前模块文件名的__filename变量与用于获取当前目录名的__dirname变量。

7 EventEmitter类
在Node.js的用于实现各种事件处理的event模块中,定义了一个EventEmitter类。所有可能触发事件的对象都是一个继承了EventEmitter类的子类的实例对象(如果一个对象要可以触发事件,那么它应该是EventEmitter的子类,这样才能针对事件绑定函数)。

addListener(event, listener)	
on(event, listener)
once(event, listener)
removeListener(event, listener)
removeAllListeners([event])
setMaxListeners(n)
listeners(event)
emit(event, [arg1], [arg2])

多次调用on来对同一个事件绑定多个处理函数。默认,针对同一个事件,最多可以绑定10个事件处理函数。可以通过setMaxListeners方法修改最多可以绑定的事件处理函数数量:emitter.setMaxListeners(n)