您的位置:首页 > Web前端 > Node.js

nodejs之事件处理机制(抛出事件、监听事件)

2018-01-06 22:58 246 查看
程序运行到一定阶段的时候会发出一个消息,对这个消息进行监听,作出响应;
==========================================
***************创建服务器var http = require('http');
var fs = require('fs');
var url = require('url');
var uesrBean=require('./models/userEvent');//吧userEvent.js中的UserBean引用过来,用一个参数接收

http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/html'});

var pathname = url.parse(request.url).pathname;
if(pathname!="/favicon.ico"){
pathname=pathname.replace(/\//,"");// 吧/去掉
user=new uesrBean();//创建一个对象
user.eventEmit.once('zhuceS',function(uname,pwd){ //对zhuceS这个事件标识监听一次,给一个回调,这里的回调中的uname和pwd是被监听的zhuceS提供 的参数
response.write('注册成功');
user.login(request,response);//调用登陆的方法
response.end('');
});
user.zhuce(request,response);//调用zhuce的方法,在zhuce方法中会抛出一个事件消息,上面对抛出的zhuceS事件消息监听一次
}
}).listen(8000);
console.log('Server running at http://127.0.0.1:8000/');
**********************事件***********var events=require('events');
function UserBean(){
this.eventEmit=new events.EventEmitter();//实例化时间发生器
this.zhuce=function(req,res){
console.log('注册');
req['uname']='a';
req['pwd']='b';
this.eventEmit.emit('zhuceS','aa','bb');//抛出事件消息,zhuceS是事件标识,会被监听,aa和bb是参数,这里的参数在监听的方法中会接收参数;
};
this.login=function(req,res){
console.log('登陆');
res.write(req['uname']);
res.write(req['pwd']);
res.write('登陆');
};
}
module.exports=UserBean;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: