nodejs之事件處理機制(丟擲事件、監聽事件)
阿新 • • 發佈:2019-01-26
程式執行到一定階段的時候會發出一個訊息,對這個訊息進行監聽,作出響應;
==========================================
***************建立伺服器
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;