nodejs的事件处理机制
Posted 月疯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs的事件处理机制相关的知识,希望对你有一定的参考价值。
程序执行到某一个阶段的时候,可以发出某一个消息,对这个消息进行监听,监听我安置后对这个消息作出响应。
/** * Events * events.EventEmitter * emitter.addListener(event,listener)==on //添加监听 * emitter.on(event,listener) * emitter.once(event,listener)//一次性的监听器 * emitterremoveListener(event,listener)//删除指定监听 * emitter.removeAllListener([event])//删除所有监听 * emitter.setMaxListener(n)//默认情况下当一个事件的监听超过10个时,EventEmitter将打印警告信息,0表示限制 * emitter.listeners(event)//返回特定事件监听器集合 * emitter.emit(event,[arg1],[arg2],[...])//用提供的参数按顺序执行每个时间监听器。 */ /** * emitter.on('someEvent',function(arg1,arg2){ * console.log('listener2',arg1,arg2); * }) * emitter.emit('someEvent','arg1参数','arg2参数');//抛出事件 */
UserBean.js
var events=require('events');
var http=require('http');
function UserBean(){
//事件发生器
this.eventEmit = new events.EventEmitter();
this.zhuce=function(req,res){
console.log('注册');
req['uname']='aa';
req['pwd']='bb';
this.eventEmit.emit('zhuceSuc','aa','bb');//抛出事件消息
},
this.login=function (req,res){
console.log('登录');
res.write('用户名:'+req['uname']);
res.write('密码:'+req['pwd']);
res.write('登录');
}
}
Events.js
var http = require('http');
var events=require('events');
var UserBean = require('../module/UserBean.js');
http.createServer(function(request,response){
response.writeHead(200,{'Content-Type':'text/html; charset=utf-8'});
if(request.url != '/favicon.ico'){
user = new UserBean();
user.eventEmit.once('zhuceSuc',function(uname,pwd){
response.write('注册成功');
console.log('传来uname:'+uname);
console.log('传来pwd:'+pwd);
user.login(request,response);
response.end('');
});//注册监听
user.zhuce(request,response);
}
}).listen(8900);
console.log('Server running at http://127.0.0.11:8900/');
以上是关于nodejs的事件处理机制的主要内容,如果未能解决你的问题,请参考以下文章