代码改变世界

随笔分类 -  Node.js

学习RxJS:Cycle.js

2016-06-16 23:16 by 莫耶, 3110 阅读, 收藏,
摘要: Cycle.js 是一个极简的JavaScript框架(核心部分加上注释125行),提供了一种函数式,响应式的人机交互接口。在这个交互模型中,人机之间的信息流互为输出输出,构成一个循环,也即 Cycle这一命名所指,框架的Logo更是以莫比乌斯环贴切的描述了这个循环。 阅读全文

学习RxJS: 导入

2016-05-31 23:04 by 莫耶, 2648 阅读, 收藏,
摘要: 知道有 ReactiveX 这么一回事, 源于一位巨硬铁粉的安利演示:Reactive LINQ 加持的C#,简洁且颇具表达力;随后,便是万众瞩目的 Angular 2,这货的标配大礼包里就有RxJS,比比皆是的 api.invocation.map(...).subscribe(fn, fn, fn) 片断,让jQuery青年们一头雾水 阅读全文

[Node.js] Node.js项目的持续集成

2016-03-04 09:27 by 莫耶, 1827 阅读, 收藏,
摘要: 本文仅是简单介绍了持续集成的概念,以及如何快速构建Jenkis + Nodejs + Github 的持续集成环境。但Jenkins 的功能远不至文中所述的这些,Jenkins 还有详尽的日志处理和持续集成构建状等功能。抛砖引玉,愿能与大家一起继续探索。 阅读全文

[Node.js] 使用node-forge保障Javascript应用的传输安全

2015-12-19 01:04 by 莫耶, 5033 阅读, 收藏,
摘要: 本文提供了一种纯Javascript应用间的TSL思路:基于node-forge实现,基于RSA+AES的混合加解密方案。 阅读全文

[Node.js] 对称加密、公钥加密和RSA

2015-06-14 13:38 by 莫耶, 6213 阅读, 收藏,
摘要: 通过比较,我们知道:RSA 比 AES 更难破解,因为它不需要担心密钥在传递过程中有泄露,只存在暴力破解一种可能;AES的优势是以分组为轮,加解密速度非常快,一般而言,AES 速度上数百倍于 RSA。所以在实际应用中,我们会混合应用AES和RSA。 阅读全文

[Node.js] DSL in action

2015-05-30 20:46 by 莫耶, 1729 阅读, 收藏,
摘要: DSL,即 domain-specific language ,是指和业务域模型相关的语言,粗糙的说法:行(业黑)话。关于什么是DSL,见仁见智,比如我认为SQL是一种DSL,有人却认为不是。在这里,我用javascript实现了一个类SQL语法查询JSON对象的DSL。 阅读全文

[Node.js] 使用TypeScript编写Node项目

2015-04-25 19:59 by 莫耶, 8556 阅读, 收藏,
摘要: TypeScript 是巨硬推出的JavaScript转译语言。 TS的特点是提供 类、接口以及泛型等一系列概念,协助开发者在编译时就定位出一些传统JavaScript项目的运行时错误,实现即巨硬所谓的"Robust components"(此外,值得一提的是,TS是大名鼎鼎的 Anders Hejlsberg 主导的项目。 阅读全文

[Node.js] Node.js中的流

2015-03-29 01:08 by 莫耶, 1604 阅读, 收藏,
摘要: 说到流,就涉及到一个*nix的概念:管道——在*nix中,流在Shell中被实现为可以通过 |(管道符) 进行桥接的数据,一个进程的输出(stdout)可被直接作为下一个进程的输入(stdin)。 在Node中,流(Stream)的概念与之类似,代表一种数据流可供桥接的能力。 阅读全文

[Node.js] Promise,Q及Async

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

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

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

[Node.js] BDD和Mocha框架

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

[Node.js] 也说this

2014-11-21 19:08 by 莫耶, 1052 阅读, 收藏,
摘要: 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 莫耶, 1208 阅读, 收藏,
摘要: 本文仅对Generator的next()应用进行了简单的描述(其实它还有更多内容如throw/send/close),抛砖引玉罢了。至于生成器特性,目前仍处于 ECMAScript 6 规范草案中,如MDN所言:请谨慎使用 :) 阅读全文

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

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

[Node.js] OAuth 2 和 passport框架

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

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

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

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

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