nodejs事件的监听与触发的理解分析
本文实例分析了nodejs事件的监听与触发。分享给大家供大家参考。具体分析如下:
关于nodejs的事件驱动,看了《nodejs深入浅出》还是没看明白(可能写的有点深,或者自己理解能力不够好),今日在图灵社区看到一篇关于nodejs事件的监听与触发,由于给出的例子比较多人,很容易理解,所以也大致明白了nodejs事件驱动。
以下内容参考了图灵社区的文章(地址:http://www.ituring.com.cn/article/177478)
首先来了解一下nodejs的Event模块:
Node.js中大部分的模块,都继承自Event模块。Event模块(events.EventEmitter)是一个简单的事件监听器模式的实现类。它的对象具有addListener,on,once,removeListener,removeAllListeners,emit等基本的事件监听模式的方法实现。
首先看一个例子:
var events = require("events"); var emitter = new events.EventEmitter();//创建了事件监听器的一个对象 // 监听事件some_event emitter.on("some_event", function(){ console.log("事件触发,调用此回调函数"); }); setTimeout(function(){ emitter.emit("some_event"); //触发事件some_event },3000);
看到这个例子,就让我想起了jQuery的自定义事件:
//给element绑定hello事件 element.on("hello",function(){ alert("hello world!"); }); //触发hello事件 element.trigger("hello");
这样一对比就很容易理解nodejs的事件的监听与触发了。emit 就相当于 jQuery 中的 trigger 触发事件。
希望本文所述对大家的nodejs程序设计有所帮助。
相关推荐
-
node.js+Ajax实现获取HTTP服务器返回数据
我们看一个HTML5页面中通过AJAX请求的方式获取HTTP服务器返回数据的代码示例.由于我们把服务器的端口指定为1337,并将从端口为80的网站中运行HTML5页面,因此这是一种跨域操作,需要在HTTP响应头部中添加Access_Control_Allow_Origin字段,并且将参数指定为允许向服务器请求数据额域名+端口号(省略端口号时允许该域名下的任何端口向服务器请求数据), 静态页面:index.html(注:一定要放在服务器环境下,如果是win7系统的话,可以开启IIS服务,并把页面考
-
Node.js实现简单聊天服务器
使用Nodejs是如此简单的实现了一个简单的聊天服务器 实现代码如下: var net = require('net'); var chatServer = net.createServer(),clientList = []; chatServer.on("connection",function(client){ client.name = client.remoteAddress + ":" + client.remotePort; client.write(
-
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
本文改自非鱼的<[翻译]前端开发人员入门指南,从零开始搭建Node.js, Express, Jade, Mongodb服务器>,之所以把Jade换成Ejs,是因为我觉得ejs更符合WEB编程人员的习惯,更确切说应该是更符合PHP.ASP程序员的使用习惯.好了,废话不多说,直接开始教程. 第1部分 – 15分钟安装 如果你真的是从零开始学,那就花点时间先把环境搭建起来吧.这不难,我用的是Win8,所以这看上去跟那些用Mac和Ubuntu或者其它*nix系统的教程有点区别,不过大致是一样的. 第
-
Node.js静态文件服务器改进版
首先还是先感谢github,感谢github上提供此段源码的作者.跟昨晚的来比今天的静态文件服务器有点点复杂些,可以学到很多新的东西. 仔细会发现这次的代码多了一个fs.stat函数和ReadStream对象的pipe函数,stat这个函数是用来获取文件信息.第一个参数是传入文件路径,第二个则是回调函数,回调函数的第二个参数stats的属性为文件的基本信息.pipe函数用于将这个可读流和destination目标可写流连接起来,传入这个流中的数据将会写入到destination流中.通过在必要时
-
shell脚本转发80端口数据包给Node.js服务器
注意:千万不要图省事直接使用ROOT用户运行Node.js服务!这将带来无法预计的安全问题!但是使用80端口作为HTTP默认端口这一习惯是从MS时代就延续至今的,怎么办呢?网上有人滔滔不绝地说用NginX做反向代理之类的,其实我觉得没必要这么夸张,只需要使用ROOT用户做一个普通端口与80端口的数据转发就好了,使用iptables语句如下: 复制代码 代码如下: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-po
-
从零开始学习Node.js系列教程五:服务器监听方法示例
本文实例讲述了Node.js服务器监听方法.分享给大家供大家参考,具体如下: httpsnifferInvoke.js var http = require('http'); var sniffer = require('./httpsniffer'); var server = http.createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello, Wor
-
Node.js实战 建立简单的Web服务器
前面一章,我们介绍了Node.js这个面向互联网服务的JavaScript服务器平台,同时Node.js的运行环境已经搭建起来,并通过两段HelloWorld程序验证了Node.js的基本功能.本章我们同样通过实战的演练,利用Node.js建立一个简单的Web服务器. 如果你熟悉.NET或其他类似平台的Web开发,你可能会像,建立一个Web服务器有什么,在Visual Studio中建立一个Web工程,点击运行即可.事实的确是这样,但请不要忘记,这样的代价是,比如果说,你是用.NET开发Web应
-
NodeJS Web应用监听sock文件实例
像 NodeJS 写的 TCP 服务可以监听在某个 sock 文件(Domain Socket) 上,它的 HTTP 服务也能这么干.虽然作为 HTTP 服务连接某个 sock 文件的意义不大,所以这里只算是一个纯粹的尝试. TCP 服务是这样写 复制代码 代码如下: var net = require('net'); net.createServer(function (socket) { socket.on('data', function (data) { socket.wri
-
利用node.js搭建简单web服务器的方法教程
前言 使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 早先不使用web服务器的情况下想要在浏览器端访问本地资源,可以利用firefox浏览器,其可以自己启动一个小型web服务器. 为了让刚接触node的人也能大体看懂,本文的代码我将尽量简化. 准备 首先,
-
教你如何使用node.js制作代理服务器
下面代码实现的功能是这样的: 首先创建一个HTTP服务器,当服务器接收到客户端的请求后,向"www.taobao.com"网站请求数据,当从该网站接受到的响应数据后,将响应数据发送给客户端. 复制代码 代码如下: var http=require("http"); var url=require("url"); var server=http.createServer(function(sreq,sres){ var url_parts=
-
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
0.Node环境下安装和使用Mock # 安装 npm install mockjs // 使用 Mock var Mock = require('mockjs') var data = Mock.mock({ // 属性 list 的值是一个数组,其中含有 1 到 10 个元素 'list|1-10': [{ // 属性 id 是一个自增数,起始值为 1,每次增 1 'id|+1': 1 }] }) // 输出结果 console.log(JSON.stringify(data, null,
-
从零学习node.js之搭建http服务器(二)
前言 在上篇文章中我们了解了一下不同模块规范之间的联系与区别.本文我们正式开始node的学习,首先我们从搭建一个http服务器,能运行简单的程序开始说起. 一.hello world 最经典的hello world.首先我们创建一个server.js来保存我们的代码: console.log( 'hello world' ); 在终端输入node server.js运行: node server.js 终端就会输出 hello world 的字样.可是我们一个node服务器程序,总是要在浏览器上
-
服务器端的JavaScript脚本 Node.js 使用入门
首先下载node.js,然后解压到E盘,改名为node,然后开始菜单输入cmd,用cd命令切换到nodejs的解压目录: 第一个例子:hello world. 在node目录下建立hello.js文件,然后在里面输入: 复制代码 代码如下: var sys = require("sys"); sys.puts("Hello world"); 然后我们在命名台中输入命令node hello.js,就能看到命名台输出结果Hello world. 第二个例子:hello
随机推荐
- iOS Swift读取本地json文件报错的解决方法
- sqlserver2005 master与msdb数据库备份恢复过程
- jquery下组织javascript代码(js函数化)
- JS 正则表达式(学习笔记2)匹配网址url参数
- java求解集合的子集的实例
- iOS判断运营商类型的实现方法
- JS维吉尼亚密码算法实现代码
- 在Firefox下js select标签点击无法弹出
- js代码实现微博导航栏
- Mysql服务器的启动与停止(二)
- Mysql5.6启动内存占用过高解决方案
- 页面布局黄金比例[图片]
- css+js下拉菜单
- JSP动态生成验证码存储在session作用范围内
- windows使用批处理发布web到tomcat并启动tomcat脚本分享
- JavaScript框架是什么?怎样才能叫做框架?
- Android中微信抢红包助手的实现详解
- 去除Ubuntu文件夹有锁标志的方法
- Java多线程编程之读写锁ReadWriteLock用法实例
- c++ 面向对象的类设计