node.js学习(二)-Node.js创建服务器;服务器的监听操作;监听操作;代码示例

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

Node.js创建服务器

  1. node.js是由其自行创建的,而非事先安装的。我们采用node.js的自带模块来完成代码的编写;
  2. 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);

服务器的监听操作

  1. 在node.js中events是比较重要的模块;
  2. events模块只提供一个对象events.EventEmitter。events.EventEmitter的核心是事件发射和事件监听器
  3. node.js中大部分的模块,都继承自events模块
  4. EventEmitter支持若干个事件监听器,当事件发射时,注册到这个事件的事件监听器被依次调用,事件参数作为回调函数传递。

监听操作

  1. emitter.on(event,listener)  监听注册(服务器端的监听操作)
  2. emitter.emit(event,arg1....)  监听触发
  3. emitter.once(event,listener)  单次监听
  4. emitter.removeListener/emitter.removeAllListener  移除监听,移除所有监听
  5. var arr = ee.listeners("some_events"); 监听数组返回
  6. 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);

如果对您有所帮助,也欢迎打赏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值