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程序设计有所帮助。

(0)

相关推荐

  • 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、Express、Ejs、Mongodb服务器及应用开发入门

    本文改自非鱼的<[翻译]前端开发人员入门指南,从零开始搭建Node.js, Express, Jade, Mongodb服务器>,之所以把Jade换成Ejs,是因为我觉得ejs更符合WEB编程人员的习惯,更确切说应该是更符合PHP.ASP程序员的使用习惯.好了,废话不多说,直接开始教程. 第1部分 – 15分钟安装 如果你真的是从零开始学,那就花点时间先把环境搭建起来吧.这不难,我用的是Win8,所以这看上去跟那些用Mac和Ubuntu或者其它*nix系统的教程有点区别,不过大致是一样的. 第

  • node.js+Ajax实现获取HTTP服务器返回数据

    我们看一个HTML5页面中通过AJAX请求的方式获取HTTP服务器返回数据的代码示例.由于我们把服务器的端口指定为1337,并将从端口为80的网站中运行HTML5页面,因此这是一种跨域操作,需要在HTTP响应头部中添加Access_Control_Allow_Origin字段,并且将参数指定为允许向服务器请求数据额域名+端口号(省略端口号时允许该域名下的任何端口向服务器请求数据), 静态页面:index.html(注:一定要放在服务器环境下,如果是win7系统的话,可以开启IIS服务,并把页面考

  • Node.js实战 建立简单的Web服务器

    前面一章,我们介绍了Node.js这个面向互联网服务的JavaScript服务器平台,同时Node.js的运行环境已经搭建起来,并通过两段HelloWorld程序验证了Node.js的基本功能.本章我们同样通过实战的演练,利用Node.js建立一个简单的Web服务器. 如果你熟悉.NET或其他类似平台的Web开发,你可能会像,建立一个Web服务器有什么,在Visual Studio中建立一个Web工程,点击运行即可.事实的确是这样,但请不要忘记,这样的代价是,比如果说,你是用.NET开发Web应

  • 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服务器环境下使用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,

  • 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制作代理服务器

    下面代码实现的功能是这样的: 首先创建一个HTTP服务器,当服务器接收到客户端的请求后,向"www.taobao.com"网站请求数据,当从该网站接受到的响应数据后,将响应数据发送给客户端. 复制代码 代码如下: var http=require("http"); var url=require("url"); var server=http.createServer(function(sreq,sres){     var url_parts=

  • Node.js静态文件服务器改进版

    首先还是先感谢github,感谢github上提供此段源码的作者.跟昨晚的来比今天的静态文件服务器有点点复杂些,可以学到很多新的东西. 仔细会发现这次的代码多了一个fs.stat函数和ReadStream对象的pipe函数,stat这个函数是用来获取文件信息.第一个参数是传入文件路径,第二个则是回调函数,回调函数的第二个参数stats的属性为文件的基本信息.pipe函数用于将这个可读流和destination目标可写流连接起来,传入这个流中的数据将会写入到destination流中.通过在必要时

  • 从零学习node.js之搭建http服务器(二)

    前言 在上篇文章中我们了解了一下不同模块规范之间的联系与区别.本文我们正式开始node的学习,首先我们从搭建一个http服务器,能运行简单的程序开始说起. 一.hello world 最经典的hello world.首先我们创建一个server.js来保存我们的代码: console.log( 'hello world' ); 在终端输入node server.js运行: node server.js 终端就会输出 hello world 的字样.可是我们一个node服务器程序,总是要在浏览器上

  • 利用node.js搭建简单web服务器的方法教程

    前言 使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 早先不使用web服务器的情况下想要在浏览器端访问本地资源,可以利用firefox浏览器,其可以自己启动一个小型web服务器. 为了让刚接触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

  • 从零开始学习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

随机推荐