mac 下用 brew 安装mongodb

mac 下安装mongoDB一般俩种方法.(1)下载源码,解压,编译,配置,启动 比较艰难的一种模式.(2)brew install mongodb ,然后就可以悠闲的品一口茶,顺便瞄一眼网易新闻,这是一种傻瓜模式.但傻瓜模式也有人为干预的时候,粗略说一下使用brew 安装mongodbzhangzhi@moke:~/code$ brew install mongodb此图说明已经安装成功,安装的目录就是 /usr/local/Cellar/mongodb/2.4.9第一次启动服务端,这里需要做一些准备工作.1.默认mongodb 数据文件是放到根目录 data/db 文件夹下,如果没有这个文

node.js 下将汉字写入Buffer时,Buffer长度如何控制?

先来温习下基础知识.一个字节(Byte)占8位(bit)一个英文字母占一个字节,一个汉字占2个字节.请注意,这里有个"坑" ,一个汉字占2个字节的前提是unicode编码,如果是utf-8 编码的时候,一个汉字占用几个字节呢? 翠花,上代码!varfs=require('fs'); var str='一段优雅的文字出现了'; bufstr = new Buffer(str.length2); for(j=0;j<str.length;j++){      bufstr.write(str[j],j2,'utf8'); } console.log(buf

海量数据大行其道的今天 node.js 在IO方面如何异步非阻塞

以其高性能,异步IO著称,当然node.js 在 stream 上的异步也非常到位. 我们一般理解的异步请求是这样的: 同时处理多件件事件 A,B,C,D,E,F,G .... 如果用.net语言去处理这些事情可能有2钟情况 (1) A,B ..... G 按照顺序一件一件处理,最后得到返回值. (2)开启多线程去同时执行多个事件. 而node是单线程处理语言,天生就不是富二代,资源还有限......上帝造物的时候是公平,当你发现关上一扇门的话,同时肯定会为你开一扇窗.所以node 有了异步回调. 所以node.js下的处理可能是这样的: A,B ...... G 依然是按照这个顺序处理,但是

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

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

jquery 判断某个元素在DOM中是否存在

javascript 代码下判断 DOM 下是否存在某个元素if(document.getElementByIdx_x(‘but’)){ alert(‘元素存在’); }else{ alert(‘元素不存在’); }但是在JQuery 下如判断某个元素是否存在.jquery 内置没有直接判断dom中某个元素是否存在的方法.$(“#but”) 获取到的是jquery 对象,是一个object,无法判断此元素是否存在.但是jquery 对象有个length 属性,表示当前jquery 对象中获取到几个 domElement 元素.所以我们的jquery代码可以这样写:if($(“#but”).le

走火入魔javascript — this关键字

this的指向是由它所在函数调用的上下文决定的,而不是由它所在函数定义的上下文决定的。(1)在全局范围内,this就是指全局对象.alert(this);this直接指向了当前环境的全局对象 window(2)调用函数时,this指向全局对象.例如 test();functiontest(){ alert(this); } test();因为调用test() 的环境就是全局,结合开开头第一句话,this 指向当前执行环境,而非定义环境,所以很容易理解当前this就是指向 window(3)函数的方法调用时,this指向调用方法的对象. 例如 obj.test(); 这时this 指 obj对

C#中常见的格式化字符串的方法

C# 中常用的格式化字符串方法.一.ToString() 显示固定长度,比如流水账号,数据库里保存数值为:1,2,3……189…19764这样显示在页面的ID就感觉对不齐,不美观,所有我们常常想左边用”0″来补齐.如下方法: ID.ToString().PadLeft(10,’0′); 不足10位的左面用”0″ 补齐00000000010000000002……00000001890000019764二. C# ToString() 里还有一种格式化可以将 ID.ToString(“D10″) ,功能也是将字符串格式化,不足10位前面补0三. Num.ToString(“C”) Num在数据库中

利用window.name 实现iframe 跨域传值

原理:浏览器跨域ifram禁止互相调用/传值.但是调用iframe时 window.name 却不变,正是利用这个特性来互相传值,当然跨域下是不容许读取ifram的window.name值.所以这里我们还要准备一个和主页面http://www.a.com/main.html 相同域下的代理页面http://www.a.com/other.html ,iframe调用子页面 http://www.b.com/iframe.aspx执行流程:浏览器执行主页面 http://www.a.com/main.html 时创建iframe 加载子页面 http://www.b.com/iframe.asp

走火入魔javascript – javascript中的垃圾回收机制

javascript的垃圾回收机制是运行环境自动收集机制.也就是说执行环境负责管理代码在执行过程中使用的内存.垃圾回收原理:找出内存中不再继续使用的变量,将其所占用的内存释放,开发人员不再关心内存的使用情况,内存的分配已经无用内存的释放完全实现了自动化管理.垃圾回收的方法有2种:(1)标记清除(2)引用计数标记清除:是目前javascript最常用的一种垃圾回收机制,当变量进入执行环境,将被标记为 “进入环境”当变量离开执行环境时,将被标记为 “离开环境”.垃圾收集器在运行时会给存储在内存中的所有变量都加上一个标记,然后检查哪些变量还在环境中使用,将去掉这些变量的标记,检查哪些变量被环境中的变

走火入魔javascript – 非值类型转化为整形方法

数值转化的3个函数(1) Number()(2) parseInt()(3) parseFloat()(1)可以用于任何类型转化为 数值型.(2),(3)专门用于字符串转化为 数值型.Number() 函数转化规则:Boolean 类型: true 转化为1, false 转化为0.数值型: 只是简单的传入和返回.Null类型: 转化为0.undefined: 转化为NaN.字符串:遵循如下规则(1)如果字符串只包含数字,直接转化为对应的数值.(2)如果字符串包含有效的浮点格式 如 “3.3″ 则直接转化为对应的浮点格式.(3)如果字符串中包含16进制格式字符串,如 “0xf” 则直接转化为对

javascript 基本类型有哪些?

Undefined:Undefined 类型只有一个值 undefined ,表示变量未定义此类型派生自Null 类型,所以出现一个很有趣的东西 if(null==undefined)alet(‘true’);将执行并弹出 true,因为条件是恒等的.当我们定义javascript变量的时候,其实默认就赋值为 undefined.var test; 其实等价于 var test=undefined;所以:当你要给一个对象定义变量时,最好这样, var testClass=null; 这样 testClass的默认值不少 undefined,保持的是一个空引用的null,下一步给testClas

采用P3P实现浏览器跨域 iframe读写 cookies

网站采用iframe框架形式嵌套了B网站的一个页面C,直接打开页面C会在本地保留一个cookie文件,而当采用A网站iframe框架形式嵌套后就无法成功生成cookie文件,该问题仅在IE浏览器环境下出现,firefox、chrome、Safari浏览器下没有问题。造成该问题的原因:一个所谓的隐私首选项(简称为P3P)的W3C标准。只有在每一页上设置一个cookie发送头,才能允许Internet Explorer接受第三方Cookie。换言之,只有在页面C上设置一个cookie发送头,那么A网站iframe框架形式嵌套后就可以在IE下成功获得页面C的cookie。PHP:header(‘P3

回到顶部