从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
本文实例讲述了Node.js EventEmitter发送和接收事件的方法。分享给大家供大家参考,具体如下:
pulser.js
/* EventEmitter发送和接收事件 HTTPServer和HTTPClient类,它们都继承自EventEmitter EventEmitter被定义在Node的事件(events)模块中,直接使用EventEmitter类需要先声明require('events'), 否则不必显式声明require('events'),因为Node中很多对象都无需你调用require('events')就会使用EventEmitter */ var events = require('events'); var util = require('util'); function Pulser(){ events.EventEmitter.call(this); } util.inherits(Pulser, events.EventEmitter); Pulser.prototype.start = function(){ var self = this; this.id = setInterval(function(){ util.log('>>>>pulse'); self.emit('pulse'); util.log('<<<<pulse'); }, 1000); } //定义了一个类Pulser,该类(通过util.inherits)继承自EventEmitter,它的作用是每隔一秒钟向所有监听器发送一个定时事件。 //start方法使用了setInterval这个函数来定期重复执行回调函数,并调用emit方法将pulse事件发送给每一个监听器 //使用Pulser对象 /* 创建了一个Pulser对象并处理其pulse事件,执行pulser.on('pulse'..)为pulse事件和回调函数建立联系 */ var pulser = new Pulser(); pulser.on('pulse', function(){ util.log('pulse received'); }); pulser.start(); //对象使用emit函数发送事件,所有注册到对应事件的监听器都可以收到事件; //通过调用.on方法注册监听器,参数是事件名,并用一个回调函数接收事件 //通常来说,有一些数据需要伴随着事件同时发送 self.emit('eventName', data1, data2, ..); //emitter.on('eventName', function(data1, data2,..){ //接收到事件后的操作 // });
每秒输出一次
希望本文所述对大家nodejs程序设计有所帮助。
相关推荐
-
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
本文实例讲述了Node.js中SQLite3和MongoDB的用法.分享给大家供大家参考,具体如下: setup.js:初始化数据库 var util = require('util'); var async = require('async'); //npm install async var notesdb = require('./nodesdb-sqlite3'); // var notesdb = require('./notesdb-mongoose'); notesdb.conne
-
从零开始学习Node.js系列教程二:文本提交与显示方法
本文实例讲述了Node.js文本提交与显示方法.分享给大家供大家参考,具体如下: index.js var server = require("./server"); var router = require("./router"); var requestHandlers = require("./requestHandlers"); var handle = {} handle["/"] = requestHandlers
-
node.js+Ajax实现获取HTTP服务器返回数据
我们看一个HTML5页面中通过AJAX请求的方式获取HTTP服务器返回数据的代码示例.由于我们把服务器的端口指定为1337,并将从端口为80的网站中运行HTML5页面,因此这是一种跨域操作,需要在HTTP响应头部中添加Access_Control_Allow_Origin字段,并且将参数指定为允许向服务器请求数据额域名+端口号(省略端口号时允许该域名下的任何端口向服务器请求数据), 静态页面:index.html(注:一定要放在服务器环境下,如果是win7系统的话,可以开启IIS服务,并把页面考
-
从零开始学习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系列教程四:多页面实现数学运算的client端和server端示例
本文实例讲述了Node.js多页面实现数学运算的client端和server端.分享给大家供大家参考,具体如下: 1.server端 支持数学运算的服务器,服务器的返回结果用json对象表示. math-server.js //通过监听3000端口使其作为Math Wizard的后台程序 var math = require('../nodejsExample3/math.js'); var express = require('express'); var app = express(); a
-
node.js中的http.response.addTrailers方法使用说明
方法说明: 该棒法用来将HTTP trailing响应头添加到消息尾部. 语法: 复制代码 代码如下: response.addTrailers(headers) 接收参数: headers 响应头信息 例子: 复制代码 代码如下: response.writeHead(200, { 'Content-Type': 'text/plain', 'Trailer': 'Content-MD5' }); response.write(fileData); response.ad
-
node.js中的http.get方法使用说明
方法说明: 由于大多数请求是不包含请求体的 GET请求.Node.js为请求提供了更加简便的方法. 该方法和 Http.request()的不同在于,该方法只以 GET 方式请求,并且会自动调用 req.end()来结束请求. 语法: 复制代码 代码如下: http.get(options, callback) 由于该方法属于http模块,使用前需要引入http模块(var http= require("http") ) 接收参数: option 表示请求网站的域名或IP地址
-
从零开始学习Node.js系列教程之设置HTTP头的方法示例
本文实例讲述了Node.js设置HTTP头的方法.分享给大家供大家参考,具体如下: server.js //basic server的配置文件 var port = 3000; var server = require('./basicserver').createServer(); server.useFavIcon("localhost", "./docroot/favicon.png"); server.addContainer(".*",
-
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
本文实例讲述了Node.js多页面实现的数学运算.分享给大家供大家参考,具体如下: app-node.js var http_port = 3000; var http = require('http'); var htutil = require('./htutil'); var server = http.createServer(function(req, res){ htutil.loadParams(req, res, undefined); if (req.requrl.pathna
-
node.js中的http.createServer方法使用说明
方法说明: 该函数用来创建一个HTTP服务器,并将 requestListener 作为 request 事件的监听函数. 语法: 复制代码 代码如下: http.createServer([requestListener]) 由于该方法属于http模块,使用前需要引入http模块(var http= require("http") ) 接收参数: requestListener 请求处理函数,自动添加到 request 事件,函数传递两个参数: req 请求对象,想知道req有
-
node.js中的http.response.writeHead方法使用说明
方法说明: 向请求的客户端发送响应头. 该函数在一个请求内最多只能调用一次,如果不调用,则会自动生成一个响应头. 语法: 复制代码 代码如下: response.writeHead(statusCode, [reasonPhrase], [headers]) 接收参数: statusCode HTTP状态码,如200(请求成功),404(未找到)等. reasonPhrase headers 类似关联数组的对象,表示响应头的每个属性
-
node.js中的http.request方法使用说明
方法说明: 函数的功能室作为客户端向HTTP服务器发起请求. 语法: 复制代码 代码如下: http.get(options, callback) 由于该方法属于http模块,使用前需要引入http模块(var http= require("http") ) 接收参数: option 数组对象,包含以下参数: host: 表示请求网站的域名或IP地址(请求的地址). 默认为'localhost'. hostname: 服务器名称,主机
-
从零开始学习Node.js系列教程三:图片上传和显示方法示例
本文实例讲述了Node.js图片上传和显示方法.分享给大家供大家参考,具体如下: index.js var server = require("./server"); var router = require("./router"); var requestHandlers = require("./requestHandlers"); var handle = {} handle["/"] = requestHandlers
-
从零开始学习Node.js系列教程一:http get和post用法分析
本文实例讲述了Node.js中http get和post用法.分享给大家供大家参考,具体如下: httpserverrequestget.js /* 获取GET请求内容 由于GET请求直接被嵌入在路径中,URL是完整的请求路径,包括了?后面的部分,因此你可以手动解析后面的内容作为GET请求的参数. node.js中url模块中的parse函数提供了这个功能. */ var http = require('http'); var url = require('url'); var util = r
随机推荐
- CentOS6.9下mysql 5.7.17安装配置方法图文教程
- ASP将Excel数据导入到SQLServer的实现代码
- jQuery页面加载初始化常用的三种方法
- 使用HTML+CSS+JS制作简单的网页菜单界面
- 基于react框架使用的一些细节要点的思考
- IOS 中UIKit-UIPageControl利用delegate定位圆点位置
- ASP.NET笔记之 viewstate与cache的使用
- Java多线程中关于join方法的使用实例解析
- c#多线程的应用全面解析
- php 使用post,get的一种简洁方式
- 详谈Linux netstat命令(高级面试必备)
- jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
- js父窗口关闭时子窗口随之关闭完美解决方案
- Ubuntu中为Android HAL编写JNI方法提供JAVA访问硬件服务接口
- 详解C语言中的错误报告errno与其相关应用方法
- MySQL索引使用说明(单列索引和多列索引)
- 详解Maven私服Nexus的安装与使用
- 利用Distinct()内置方法对List集合的去重问题详解
- 基于Java反射的map自动装配JavaBean工具类设计示例代码
- java通过实例了解值传递和引用传递