20.Node.js EventEmitter的方法和事件】的更多相关文章

转自:http://www.runoob.com/nodejs/nodejs-tutorial.html EventEmitter 提供了多个属性,如 on 和 emit.on 函数用于绑定事件函数,emit 属性用于触发一个事件.接下来我们来具体看下 EventEmitter 的属性介绍. 序号 方法 & 描述 1 addListener(event, listener)为指定事件添加一个监听器到监听器数组的尾部. 2 on(event, listener)为指定事件注册一个监听器,接受一个字…
EventEmitter是nodejs核心的一部分.很多nodejs对象继承自EventEmitter,用来处理事件,及回调.api文档地址: http://nodejs.org/api/events.html#events_class_events_eventemitter Event: Many objects in Node emit events: a net.Server emits an event each time a peer connects to it, a fs.read…
Node.js EventEmitter Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列. Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStream对象会在文件被打开的时候发出一个事件. 所有这些产生事件的对象都是 events.EventEmitter 的实例. EventEmitter 类 events 模块只提供了一个对象: events.EventEmitter.EventEmitt…
#######################################################################################介绍Node.js EventEmitterNode.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列.Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStream对象会在文件被打开的时候发出一个事件. 所有这些产生事件的对象都是 ev…
TODO:Node.js pm2使用方法 pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. 1.使用 npm install pm2 -g 安装 pm2 2.使用pm2管理 Node 进程,执行以下命令启动 node 服务: pm2 start process.json 错误日志输出,less ~/.pm2/logs/video-error.log,Node Error: Cann…
最近,我一直对学习Node.js比较感兴趣.下面是小编给大家带来的Centos7 中 Node.js安装简单方法,在此记录一下,方便自己也方便大家,一起看看吧! 安装node.js 登陆Centos 终端登录 $ ssh root@192.168.0.23 IP可以是局域网内或者公网IP. 下载node 根据你的系统,在官网找到 https://nodejs.org/en/download/ 你需要下载的版本.比如我选择的 Linux Binaries (x86/x64) 64bit ,点击右键…
Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列. Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStream对象会在文件被打开的时候发出一个事件. 所有这些产生事件的对象都是 events.EventEmitter 的实例. EventEmitter 类 events 模块只提供了一个对象: events.EventEmitter.EventEmitter 的核心就是事件触发与事件监听器功能的…
Events 是 Node.js 中最重要的核心模块之一,很多模块都是依赖其创建的,例如上一节分析的流,文件.网络等模块. 比较知名的 Express.KOA 等框架在其内部也使用了 Events 模块. Events 模块提供了EventEmitter类,EventEmitter 也叫事件触发器,是一种观察者模式的实现. 观察者模式是软件设计模式的一种,在此模式中,一个目标对象(即被观察者对象)管理所有依赖于它的观察者对象. 当其自身状态发生变化时,将以广播的方式主动发送通知(在通知中可携带一…
Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列. Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStream对象会在文件被打开的时候发出一个事件. 所有这些产生事件的对象都是 events.EventEmitter 的实例.…
写这个问题是因为最近看到一些初学者用回调用的不亦乐乎,最后代码左调来又调去很不直观. 首先上结论:推荐使用async/await或者co/yield,其次是promise,再次是事件,回调不要使用. 接下来是解析,为什么我会有这样的结论 首先是回调,理解上最简单,就是我把任务分配出去,当你执行完了我就能从你那里拿到结果执行相应的回调, 这里演示一个对setTimeout的封装,规定时间后打印相应结果并执行回调函数 并且这个函数传给回调函数的参数符合node标准,第一个为error信息,如果出错e…
javascript是单线程的,所以任务的执行都需要排队,任务分为两种,一种是同步任务,一种是异步任务. 同步任务是进入主线程上排队执行的任务,上一个任务执行完了,下一个任务才会执行. 异步任务是不进入主线程,而是进入一个 "任务队列" 里,"任务队列" 通知主线程,该异步任务才会进入主线程执行. 任务的运行机制如下: 1.所有同步任务在主线程上执行,形成一个 "执行栈",注意栈是先进后出的. 2.主线程外,有一个 "任务队列"…
最新文档请查看仓库 https://github.com/wangduandu... 1. File System 所有文件操作提供同步和异步的两种方式,本笔记只记录异步的API 异步方式其最后一个参数是回调函数.回调函数的第一个参数往往是错误对象,如果没有发生参数,那么第一个参数可能是null或者undefinded. 同步函数可以使用try catch 捕获异常 多个异步函数在同一层次执行,是无法保证顺序的.最好将一个函数放在另一个函数的回调函数中去执行.这种回调的嵌套层次一旦过深,就会造成…
Node.js 手册查询-Mongoose 方法 一.Schema 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力.可以说是数据属性模型(传统意义的表结构),又或着是“集合”的模型骨架 /* 定义一个 Schema */ var mongoose = require("mongoose"); var TestSchema = new mongoose.Schema({ name : { type:String },//属性name,类型为S…
转自:http://www.runoob.com/nodejs/nodejs-tutorial.html Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列. Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStream对象会在文件被打开的时候发出一个事件. 所有这些产生事件的对象都是 events.EventEmitter 的实例. EventEmitter 类 events 模块只提供了一个对象…
1. File System 所有文件操作提供同步和异步的两种方式,本笔记只记录异步的API 异步方式其最后一个参数是回调函数.回调函数的第一个参数往往是错误对象,如果没有发生参数,那么第一个参数可能是null或者undefinded. 同步函数可以使用try catch 捕获异常 多个异步函数在同一层次执行,是无法保证顺序的.最好将一个函数放在另一个函数的回调函数中去执行.这种回调的嵌套层次一旦过深,就会造成回调地狱 一般情况下,非常不建议使用同步的fs方法,因为同步的方法会阻断其他事情,直到…
前段时间公司网站要求加上HTTPS安全CA证书,公司服务器全是阿里云服务器,并且配有负载均衡,所以选择直接在阿里云购买CA证书,阿里云有一种证书可以免费试用一年,决定申请此证书,阿里云证书需要验证,阿里云有详细教程 配置之后发现所有在HTTPS访问的网站下的所有连接都需要是HTTPS访问,所以还是需要自己进行配置 配置方案记录一下,方便以后自己配置查找 环境 Centos6.8  Nginx  yum安装 首先要将下载的CA证书上传到服务器上面 , 然后打开/etc/nginx/conf.d/自…
Node.js应用不需要经过编译过程,可以直接把源代码拷贝到部署机上执行,确实比C++.Java这类编译型应用部署方便.然而,Node.js应用执行需要有运行环境,意味着你需要先在部署机器上安装Node.js.虽说没有麻烦到哪里去,但毕竟多了一个步骤,特别是对于离线环境下的部署机,麻烦程度还要上升一级.假设你用Node.js写一些小的桌面级工具软件,部署到客户机上还要先安装Node.js,有点“大炮打蚊子”的感觉.更严重的是,如果部署机器上游多个Node.js应用,而且这些应用要依赖于不同的No…
 想象一下,以前我们在写程序时, 如果程序在I/O上阻塞了,当有更多请求过来时,服务器会怎么处理呢?在这种情景中通常会用多线程的方式.一种常见的实现是给每个连接分配一个线程,并为那些连接设置一个线程池.你可以把线程想象成一个计算工作区,处理器在这个工作区中完成指定的任务.线程通常都是处于进程之内的,并且会维护它自己的工作内存.每个线程会处理一到多个服务器连接. 尽管这听起来是个很自然的委派服务器劳动力的方式(最起码对那些曾经长期采用这种方式的开发人员来说是这样的),但程序内的线程管理会非常复杂.…
Node.js 手册查询-Express 方法 1.send方法 send 方法向浏览器发送一个响应信息,并可以智能处理不同类型的数据 send方法在输出响应时会自动进行一些设置,比如HEAD信息.HTTP缓存支持等等 类型可以是: String, Array, Object, Number. 当参数为一个String时,Content-Type默认设置为"text/html" 当参数为Array或Object时,Express会返回一个JSON 当参数为一个NumberExpress…
一.安装 1.$ sudo apt-get install nodejs 2.$ sudo apt-get install npm 二.升级     1.升级npm命令如下: $ sudo npm install npm -g /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js npm@2.14.2 /usr/local/lib/node_modules/npm 2.升级node.js命令如下:$ npm in…
这是真事儿,在3w咖啡整理书稿,然后小弟梁过来了,聊聊他的现状,一副很不好的样子,在天津我曾带过他大半年,总不能不管,我给他的建议是:“每天看10个npm模块” 对于学习Node.js迷茫的人来说,这是最好的方式,当你不知道如何做的时候,就要向前(钱)看,你要知道积累哪些技能对以后有好处.对于学习Node.js必经之路,一定是要掌握很多模块用法,并从中汲取技巧.思路.设计思想的.与其不知道学什么,为什么不每天积累几个技巧呢? 但这个是有争议的,朋友圈收集的反馈非常直接 一天看10个?怎么个看法?…
方法处理器 可以用 v-on 指令监听 DOM 事件: <div id="example"> <button v-on:click="greet">Greet</button> </div> 我们绑定了一个单击事件处理器到一个方法 greet.下面在 Vue 实例中定义这个方法: var vm = new Vue({ el: '#example', data: { name: 'Vue.js' }, // 在 `met…
回到目录 policies sails的方法拦截器类似于.net mvc里的Filter,即它可以作用在controller的action上,在服务器响应指定action之前,对这个action进行拦截,先执行policies的策略,当条件通过,会next()它,继续执行本方法,当条件不满足时,你可以终端这个请求,在sails里,policies也经常被用在权限判断上,如登陆用户可以访问某个action,管理员权限可以访问指定action等等. 一 首先定义一个过滤器(策略)/policies/…
HTTP概念进阶 1. 什么是回调? 回调是异步编程时的基础,将后续逻辑封装成起始函数的参数,逐层嵌套 2. 什么是同步/异步? 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式. 通过异步编程达到非阻塞效果 3. 什么是I/O? 磁盘的写入(in)磁盘的读取(out) 4. 什么的单线程/多线程? 一次只能执行一个程序叫做单线程 一次能执行多个程序叫多线程 (正常恋爱与脚踏n条船) 5.…
var fs=require('fs'); var files =['a.txt','b.txt','c.txt']; // for (var i = 0; i < files.length; i++) { //事实上fs.readFile的回调函数中访问到的i值都是循环退出以后的 //原因是3次读取文件的回调函数事实上是同一个实例,其中引用到的i值是上面循环执行结束后的值 // fs.readFile(files[i],'utf-8',function(err,conetens){ // co…
pulser.js /* EventEmitter发送和接收事件 HTTPServer和HTTPClient类,它们都继承自EventEmitter EventEmitter被定义在Node的事件(events)模块中,直接使用EventEmitter类需要先声明require('events'), 否则不必显式声明require('events'),因为Node中很多对象都无需你调用require('events')就会使用EventEmitter */ var events = requir…
前言 事件驱动的编程变得流行之前,在程序内部进行通信的标准方法非常简单:如果一个组件想要向另外一个发送消息,只是显式地调用了那个组件上的方法.但是在 react 中用的却是事件驱动而不是调用. 事件的好处 这种方法能够使组件更加分离.在我们继续写程序时,会识别整个过程中的事件,在正确的时间触发它们,并为每个事件附加一个或多个事件监听器,这使得功能扩展变得更加容易.我们可以为特定事件添加更多的 listener,而不必修改现有的侦听器或触发事件的应用程序部分.我们所谈论的是观察者模式. 设计一个事…
原文标题:Node.js EventEmitter Tutorial 原文链接:http://www.hacksparrow.com/node-js-eventemitter-tutorial.html 听说过 Node.js 中的 EventEmitter 吗?也许你知道大部分内置的 Node.js 库 都使用它,也许你总是对 EventEmitter 充满好奇,但是没有谁向你解释? 在这个教程中,我会给你一些关于 EventEmitter 类的例子. 你必须熟悉各种 Node.js 中的事件…
使用events.EventEmitter 控制Node.js 程序执行流程 标题写的可能也不太对,大家领会精神: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,N…
node.js 的第一个基本观点是,I/O 操作是昂贵的: 目前的编程技术最大的浪费来自等待 I/O 操作的完成.有几种方法可以解决这些对性能的影响(来自Sam Rushing): 同步:依次处理单个请求. 优点:简单. 缺点:任何一个请求都会阻塞其余请求. 创建新进程:为每个请求创建一个进程处理 优点:容易. 缺点:扩展性不好,数百个连接意味着数百个进程.fork()是 Unix 程序员的锤子.因为它很有用,所有的问题都像是钉子.但这通常是多余的. 线程:为每个请求创建一个线程处理. 优点:容…