Node.js基础(二)

3.3 _filename变量与_dirname变量
在Node.js中有两个变量:用于获取当前模块名称的_filename变量和获取当前目录名称的_dirname。
3.1.1 _filename变量
在任何模块的内部,可以使用_filename变量获取当前模块文件名称以及文件完整的绝对路径。
3.1.2 _dirname变量
在任何模块内部,可以使用_dirname变量获取当前模块文件所在目录的完整的绝对路径。

3.4 事件处理机制以及事件环机制
3.4.1 EventEmitter类
在 Node.js中有一个event模块用来处理各种事件,event模块中有一个EventEmitter类。所有触发事件的对象都是一个继承了EventEmitter类的子类实例对象。同时EventEmitter类有多种处理事件的方法。
EventEmitter类的方法介绍
方法名与参数 描述
addListener(event,listener) 对指定的事件绑定事件处理函数
on(event,listener) 对指定的事件绑定事件处理函数(是addListener方法的别名)
once(event,listener) 对指定的事件只执行一次事件函数
removeListener(event,lstener) 对指定事件解除处理函数
removeAllListeners([event]) 对指定事件解除所有的处理函数
setMaxListeners(n) 指定事件处理函数的最大数量
listeners(event) 获取指定事件所有的处理函数
emit(event,[arg1],[arg2],,,) 手动触发事件
3.4.2 EventEmitter类的各种方法
使用addListener()方法或者on()方法为指定的事件绑定事件处理函数。程序示例:
emitter.on(event,listener);
emitter.addListener(event,listener);
代码示例:
var http=require('http');
var server=http.createServer();
server.on('request',function (req,res) {
if(req.url!=="/favicon,ico"){
console.log('收到客户端请求。');
}
});
server.on('request',function (req,res) {
if(req.url!=="/favicon,ico"){
console.log(req.url);
}
res.end();
});
server.on('request',function (req,res) {
if(req.url!=="/favicon,ico"){
console.log('发送响应完毕');
}
});
server.listen(1337,"127.0.0.1");
在默认的情况下,同一个事件最多只能绑定10个事件处理函数。程序示例:
emitter.setMaxListeners(n); //参数n表示绑定事件的数目.

EventEmitter类的once()函数只会为事件绑定一次处理事件,执行完成之后就会取消事件的绑定。

EventEmitter类的removeListener()方法可以解除某个事件的处理函数。程序示例:
emitter.removeListener(event,listener); //event:事件名称 listener:事件处理函数
EventEmitter类的removeAllListener()方法可以消除某个事件被指定的所有的事件处理函数。程序示例:
emitter.removeAllListener([event]);
3.4.3 获取指定事件的事件处理函数的数量
EventEmitter类有一个listenerCount方法获取指定事件的事件处理函数的数量。程序示例:
EventEmitter.listenerCount(emitter,event);
3.4.4 EventEmitter类自身拥有的 事件
EventEmitter类自身的事件有:newListener事件和removeListener事件.

猜你喜欢

转载自blog.csdn.net/qq_26587339/article/details/53153014
今日推荐