node.js events 使用方法 - 事件触发器 - 观察者模式

这还要从node.js 本身的特性说起,这是一门服务器端脚本语言,其特性是单线程异步非阻塞基于事件驱动的脚本语言.今天要说的是node.js 下如何绑定事件,创建事件触发函数.什么是事件? 个人通俗理解,当一件事情由于一个或多个诱因而引发的事情,同时牵扯到其他事情的发生及连锁反应,叫做一个事件.比如:过马路,稍后程序中描述的也是此事例.事件主体是 红绿灯,诱发外因是 由红灯变成绿灯导致结果是 同向等待的行人马上通行,同向等待的车辆马上通行.如何在node.js中使用?首先了解此模块是一个核心模块,直接引用 var events = require('events');任何类型如

node.js 中的魔术变量

魔术变量一词应该出自php语言,或者是本人第一次听说魔术变量是从php得知的.因为它是随系统运行环境变化而变化的,因此得名.node.js 下也有环境变量,最常见的有获取当前运行的脚本文件,获取当前运行脚本文件所在的目录.使用方法非常简单://魔术变量 //获取当前运行脚本文件的文件名 console.log(__filename); //获取当前运行脚本文件所在的目录 console.log(__dirname);执行效果:

mac 下安装运行 redis

mac 上安装 redis 首先必须保证mac 已经安装 xcode.因为make时要用到Xcode 的command Tools .(1)下载 redis http://redis.googlecode.com/files/redis-2.8.7.tar.gz解压到当前目录.(2)你也可以在终端下载:curl-Ohttp://redis.googlecode.com/files/redis-2.8.7.tar.gz sudotar-zxfredis-2.8.7.tar.gz(3)修改文件夹名,编译mvredis-2.8.7redis cdredis/ sudomake sudomaketes

node.js 的定时器 setTimeout 和 setInterval

node.js 下的定时器setTimeout(匿名函数,毫秒数) 表示多少毫秒后触发一次此匿名函数.setInterval(匿名函数,毫秒数) 表示多少毫秒后重复触发此匿名函数.了解javascript 的人都应该非常熟悉这两个函数,但是这些定时器却不是 ECMAScript 标准里所包含的函数,起码不是现在标准里的.node.js 是运行的google V8环境下的服务器端javascript 脚本,当然V8是严格按照 EMCAScript 标准来实现的.但是,V8 也实现了这些定时器函数 .因为它们好用,功能强大,已经广泛被浏览器厂商默认支持.可以说已经是深入人心.据说 ECMAScri

node.js require 相对路径 or 绝对路径

node.js 加载其他模块时要使用require(路径) ,路过路径加载的一般都是文件模块,程序首先会加上.js扩展名尝试去搜索,如果找不到,就尝试用 .json 格式扩展名去搜索加载,还找不到,就加上扩展名 .node 去搜索加载.但是这里的路径也有些说道的!常见的格式:require('./lib/util');上面的加载路径是一个相对路径,程序会去所在目录上一层找到lib 文件目录,然后目录下找到 util.js 文件并加载.如何辩别相对/绝对路径,相对路径以 . 开始绝对路径以 / 开始require('/home/zhangzhi/code/test/tes

node.js 中的核心模块 Core Modules 加载顺序及规则

何为核心? 重要的/不可缺的!node.js作为一门跨平台服务器端编程语言,必然也有它的核心.node.js继承了javascript 客户端语言该有的优势,同时摒弃了客户端javascript的一些缺点,比如在客户端javascript环境下,全局变量可以到处被定义,随意被覆盖,代码污染严重,所以node.js有了模块的概念,在模块里定义的全局变量如果没有被export ,那么此变量是私有的,只能在定义的模块是使用.不用提醒我,我并没有跑题,正因为模块机制,导致node.js的一些核心模块也编译成各自独立的二进制文件,他们就放在 node 源代码中 lib 文件夹下.为啥是二进制文件?你不用

Sublime Text2 javascript格式化插件JsFormat

用Sublime Text2写javascript非常爽作为nodejs开发必备神器,前面有单独介绍此编辑器的文章今天要说的是一款javascript格式化插件打开你的Sublime Text2按下快捷键 Ctrl+Alt+p 打开命令面板输入install 这时下拉框第一项就会显示安装包控制器(这个需要初始化安装,不明白的搜索本站关于sublime Text2 的介绍) 然后回车进入安装包控制器界面打开安装包控制器后,输入 jsformat 回车安装即可.安装后如何使用?在你写javascript代码时,按下 Ctrl+Alt+f 快捷键后,js代码自动格式化对齐,赶快试一试吧!如果你mac

走火入魔-javascript prototype 原型继承

在前几篇博客中谈到了用javascript中利用函数的函数模拟类,既然有类,那就应该存在面向对象的三大基本属性,或者说可以模拟出面向对象的三大基本属性.今天我们要学习的就是面向对象的继承 – javascript原型继承.为什么叫原型继承,因为我们知道javascript本没有类,它完全是基于原型对象的一门弱类型语言.所以javascript依靠原生对象创建出来的新对象就继承了原生对象的一些属性和方法.上面模拟了一个person类,person构造函数里初始化了姓名,然后我们创建一个学生的对象,并起名为 ‘小小’ 最后程序运行结果显示 小小.其实student 对象并没有定义姓名属性,为什么会

一个好的起点

是起点,是好的开始.由于blog空间,域名等种种原因,搜索引擎的收录量始终上不去,一度还被百度拉黑!2014年买了空间,备案了域名,进过这几天的blog搬家和零零碎碎的随想录贴上来,发现蜘蛛来的也频繁了,百度最为明显,从昨天的9个收录到今天的44个收录,百度一直对blog不感冒,这样的表现让我感到很欣慰.google 更青睐新网站,更喜欢原创及blog ,所以google 几乎收录了一介布衣各个版本的所有内容,即使点进去已经404了,google是一个尊重对方的搜索引擎,只要你有一口气在,它不会轻易删除你的快照.360搜索也还可以,因为以前在360提交过网站信息,所以蜘蛛很勤劳,但是目前为止还

出自<<php圣经>>里的一段有关代码和数据的阐述

编程世界里只存在两种基本元素,一个是数据,一个是代码。 编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力。 数据天生就是文静的,总想保持自己固有的本色;而代码却天生活泼,总想改变这个世界。 你看,数据代码间的关系与物质能量间的关系有着惊人的相似。 数据也是有惯性的,如果没有代码来施加外力,她总保持自己原来的状态。 而代码就象能量,他存在的唯一目的,就是要努力改变数据原来的状态。 在代码改变数据的同时,也会因为数据的抗拒而反过来影响或改变代码原有的趋势。 甚至在某些情况下,数据可以转变为代码,而代码却又有可能被转变为数据,或许还存在一个类似E=MC2形式的数码转换方程呢。 然而,就

走火入魔 – javascript call apply 实现继承

上一博文说到了 javascript 中的原型继承,还说到了和大家分享 call , apply 实现继承,所以,就有了这篇博文.我们还是定义一个person 类 和一个 student 类,如下上面的student 类的构造函数传入了3个参数,当我们用call 实现 student 继承 person 的时候时,person的构造函数只实现了2个参数的传入,所以第三个参数必须要student自己来实现.及学生有了成绩的这个属性.student 类还重新定义eat 方法,到底之类重写父类的方法时,父类的同名方法会不会被覆盖? call 能不能实现 student 继承 person ? 这些疑

javascript 字符串和时间类型相互转化

常见的时间类型字符串:vardate1="2014-03-0912:00:00";javascript 对 类似上面这种时间转化不感冒,它更青睐的是这种字符串格式的时间 "2014/03/09 12:00:00" ,我们姑且称作date2所以有种非常简单的方法就是将 date1 的格式转换成 date2 的格式然后再转化时间类型.如下vartime1=newDate(Date.parse(date1.replace(/-/g,"/")));上面一行代码实现了date1 转 时间类型.求时间差方法:var days=time1-time

linux 下 wget命令使用帮助

Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。下面我们以实例的形式说明怎么使用wget。1、使用wget下载单个文件以下的例子是从网络下

jQuery 源码分析学习 — 优秀前端框架jQuery框架认识

从今天开始学习优秀前端开源框架jQuery源码.本系列主要针对 jQuery1.6 源码分析学习.准备工作:初始jQuery 框架.(function(){ // javascript  代码…… })();所有的jQuery 代码都包含在这个自调用匿名函数中什么是匿名函数?类似这样的函数定义(function(a,b) { console.info( a+b); })( 5,6);匿名函数其实是一种函数字面量,就像对象字面量一样{name:”小小”,age:1}  第一对圆括号括起来的function(){….}  是匿名函数的函数体,第二对圆括号 (5,6) 是匿名函数的参数,此函数字面量

走火入魔javascript — 分享几个好多人执意往里跳的”坑”

javascript 是一门容易上手也是一门如意犯错的语言,为什么这么说,它零活的类型转化有时让你摸不到头脑.类型有没有定义都无所谓,一旦你的变量前少了var ,那可能会造成一个严重的bug ,污染了全局变量,甚至修改了全局变量的值,导致其他引用该变量的程序出错.函数形参和实参可以不匹配,不匹配到什么程度呢? 类型可以不匹配,甚至参数数量也可以不匹配……..等等javascript里的一些坑,如果你发现了一定要绕过去,如果你发现不了,那可能浪费你很多的时间去调试一个bug1.关于 NaN 类型,这是个非数值类型,那它的值是什么呢? 谁都不知道,的确,它自己都不知道.所以看下面的坑if(NaN=

走火入魔-javascript 中的类

嗯,没错,今天就是要讲下javascript中的类,哈哈,希望不要对大家有所误解!稍微对javascript有所了解的人应该知道,javascript这门弱类型语言没有类的概念,它是基于对象的.看了上面这句不仅有人低估起来了,既然有对象,为啥能没有类呢? 的确,javascript 是一门很怪异的弱类型语言,它的怪异之处以后慢慢讲,而它基于的对象并不是从类实例化过来的对象,而是原型对象.原型对象从哪来? 用一个不确切的比喻来说好比造物主创造世界的时候初始化了一些原生的东西,比如男人,女人,这是俩个活生生的原型而不是类型,也就是说javascript本身就内置了几种对象,而以后创建的对象都是从这

javascript中的对象

简单说下关于javascript中的对象.javascript 不是一门面向对象的语言,而是一门基于对象的语言,它的所有类型都基于Object原型而存在.但是我们常说 javascript中包括值类型 ,比如 boolean ,number, string 等值类型,其实这些值类型被称为 伪对象,他们对应javascript中三个内置对象分别是:Boolean , Number , String 而解析器将这三个对象的方法和属性同样绑定在对应字面量值类型上(boolean,number,string) 所以javascript中值类型也是也拥有了方法和属性,一般推荐直接使用这3个内置对象的字面

javascript私房菜-百变函数eval

如你所想,确实有点标题党手里有本鸟哥的<<linux私房菜>>对于一个linux菜鸟来说受益很大,所以我也来道私房菜,对鸟哥致敬!!eval 很神秘,你不觉得吗? 你可能常常会用到这个函数,但是有不太明天它到底是干什么的,其实我之前也一样非常糊涂,所以写了这篇博和大家一起学习探讨.很早一段时间我认为 eval 是个格式化函数,为什么这样认为,起因是ajax接收后台传过来的json格式字符串,javascript直接接收后台传入的json格式总是不识别,只要用神奇的 eval 函数转化一下就ok了,下面我们一起来认识一下 evalevalw3c 给出的定义是: eval(

回到顶部