Node.js创建服务器
- node.js是由其自行创建的,而非事先安装的。我们采用node.js的自带模块来完成代码的编写;
- node.js可以快速指定端口,并启用服务器来设定网址,重启服务只是shell退出
var http = require("http");
http.createServer(function(request,response){
response.writeHead(200,{"Content-type":"text/plain"});
response.write("hello");
response.end("end");
}).listen(8888);
服务器的监听操作
- 在node.js中events是比较重要的模块;
- events模块只提供一个对象events.EventEmitter。events.EventEmitter的核心是事件发射和事件监听器
- node.js中大部分的模块,都继承自events模块
- EventEmitter支持若干个事件监听器,当事件发射时,注册到这个事件的事件监听器被依次调用,事件参数作为回调函数传递。
监听操作
- emitter.on(event,listener) 监听注册(服务器端的监听操作)
- emitter.emit(event,arg1....) 监听触发
- emitter.once(event,listener) 单次监听
- emitter.removeListener/emitter.removeAllListener 移除监听,移除所有监听
-
var arr = ee.listeners("some_events"); 监听数组返回 - emitter.setMaxListeners 设置监听器的最大值
代码示例
/**
* 注册监听器、移除监听器
* **/
//引入事件监听类
var EventEmitter = require("events").EventEmitter;
//创建事件监听对象
var ee = new EventEmitter();
/**
* 事件的注册
* **/
var listen1 = function(foo,bar){
console.log("第一个监听事件,参数foo="+foo+",bar="+bar);
}
var listen2 = function(foo,bar){
console.log("第er个监听事件,参数foo="+foo+",bar="+bar);
}
ee.on("some_events",listen1);
ee.on("some_events",listen2);
/*ee.once("some_events",function(foo,bar){
console.log("第一个监听事件,参数foo="+foo+",bar="+bar);
});*/
console.info("第一轮");
//事件触发
/*错误的移除监听器方式
ee.removeListener("some_events",function(){
console.info("成功移除事件");
});*/
ee.emit("some_events","wilson","zhong");
//移除的是listen2
ee.removeListener("some_events",listen2);
//全部移除
//ee.removeAllListeners();
//第二轮触发
console.info("第二轮");
ee.emit("some_events","wilson","Z");
//以这种方式判断出当前有几个监听器
var arr = ee.listeners("some_events");
console.log(arr.length);
如果对您有所帮助,也欢迎打赏

本文详细介绍了如何使用Node.js内置模块快速创建服务器并指定端口号,同时深入探讨了事件监听器的注册、触发及移除过程。通过具体代码示例,读者将学会服务器的监听操作以及如何利用events模块进行事件处理。

被折叠的 条评论
为什么被折叠?



