代码改变世界

[Node.js] Promise,Q及Async

2014-12-27 01:50 by 莫耶, 3684 阅读, 1 推荐, 收藏, 编辑
摘要:Promise是对异步编程的一种抽象。它是一个代理对象,代表一个必须进行异步处理的函数返回的值或抛出的异常。本文仅对异步方法的串行执行,及其在Q/Aysnc等库中的使用进行探讨。 阅读全文

[Node.js] Express的测试覆盖率

2014-12-03 17:28 by 莫耶, 2857 阅读, 4 推荐, 收藏, 编辑
摘要:代码覆盖率(Code coverage)是软件测试中的一种度量,描述程式中源代码被测试的比例和程度,所得比例称为代码覆盖率。本文关注的是使用express web框架时如何进行覆盖率测试。 阅读全文

[Node.js] BDD和Mocha框架

2014-11-22 17:42 by 莫耶, 2282 阅读, 0 推荐, 收藏, 编辑
摘要:BDD作为理论方法学,强调以需求为导向,并鼓励开发人员、QA与需求方之间的协作。BDD位于更宏观的位置,让开发者“做正确的事”;而TDD注重细节,确保开发者“正确的做事”。 阅读全文

[Node.js] 也说this

2014-11-21 19:08 by 莫耶, 1035 阅读, 0 推荐, 收藏, 编辑
摘要:this 实质上是一种绑定(binding)机制,只关乎函数被调用时所处的 上下文(context),而不关心它在哪里被定义……绑定的形式有:被new过的函数实例,那么函数里的this绑定的就是这个实例对象本身; 函数是被 call 或者 apply 调用,那么 this 绑定的是第一个参数; 函数是某个对象的方法,那么它的this 绑定的是这个对象; 最后,就是隐式绑定了,这种情况的this 绑定的是全局上下文,在 strict mode(Node)下是 undefined 阅读全文

[Node.js] ECMAScript 6中的生成器及koa小析

2014-11-10 22:02 by 莫耶, 1189 阅读, 0 推荐, 收藏, 编辑
摘要:本文仅对Generator的next()应用进行了简单的描述(其实它还有更多内容如throw/send/close),抛砖引玉罢了。至于生成器特性,目前仍处于 ECMAScript 6 规范草案中,如MDN所言:请谨慎使用 :) 阅读全文

[Node.js] 使用File API 异步上传文件

2014-11-05 17:28 by 莫耶, 3084 阅读, 7 推荐, 收藏, 编辑
摘要:使用FileReader对象,web应用程序可以异步的读取存储在用户计算机上的文件(或者原始数据缓冲)内容,可以使用File对象或者Blob对象来指定所要读取的文件或数据.其中File对象可以是来自用户在一个元素上选择文件后返回的FileList对象,也可以来自由拖放操作生成的 DataTransfer对象,还可以是来自在一个HTMLCanvasElement上执行mozGetAsFile()方法后的返回结果. 阅读全文

[Node.js] OAuth 2 和 passport框架

2014-10-01 16:42 by 莫耶, 5083 阅读, 2 推荐, 收藏, 编辑
摘要:OAuth 2 协议为用户资源的授权提供了一个安全的、开放而又简易的标准,但即便如此,在Node.js 的 OAuth 2交互实现中,仍需 为Owner/App/Server的三方交互流程编写很多代码。使用Passport框架,将大大简化这一编程模型,使我们可以将更多精力投入到业务实现上。 阅读全文

[Node.js] Node + Redis 实现分布式Session方案

2014-09-28 17:28 by 莫耶, 3938 阅读, 4 推荐, 收藏, 编辑
摘要:随着网站规模(访问量/复杂度/数据量)的扩容,针对单机的方案将成为性能的瓶颈,分布式应用在所难免。所以,有必要研究一下 Session 的分布式存储。本文主要探讨基于哈希算法和缓存设施的分布式思路。 阅读全文

[Node.js] Cluster,把多核用起来

2014-09-17 22:09 by 莫耶, 2577 阅读, 2 推荐, 收藏, 编辑
摘要:Cluster 简化了父子模型编程模型,只区分:当前进程是不是 Master,是 Master 就可以fork子进程,不是那就请行使 Worker 职责。至于什么资源的回收,负载的调配,uncaughtException的处理,它自有安排。 本质上, Cluster 是 child_process 和 net 模块的组合应用。它不仅简化了编程模型,还使得共享监听同一端口成为可能。 阅读全文

Python开源框架Scrapy安装及使用

2014-03-15 16:21 by 莫耶, 1259 阅读, 0 推荐, 收藏, 编辑
摘要:一、安装问题环境: CentOS + Python 2.7 + Pip1) 安装时遇到 ”UnicodeDecodeError:'ascii'codeccan'tdecodebyte0xe9” 错误,安装libffi-devel 和 Python-devel:yum install libffi-develyum install python-devel2) 安装lxml 时 遇到错误,可能是缺少 libxml2-devel 和 libxslt-devel,使用yum安装:yum install libxslt-devel libxml2-devel3) 遇到 bz2 阅读全文