AJAX
BDD
DOM
HTTP
Mocha
Mock
Promise
XHR
jQuery
异步
测试
在 Web 前端测试中,常常会需要测试 AJAX 行为。
为了简化测试的环境要求需要提供虚拟的测试环境。
Sinonjs 在这方面提供了两类 API:
- Fake XMLHttpRequest:覆盖 DOM API 中的 XHR。使得我们可以捕获所有用户构建的 XHR 对象,包括直接构造的
XMLHttpRequest
,也包括通过 jQuery 等工具构造的。因此可以测试 XHR 构造是否正确。
- Fake Server:Mock 服务器行为。如果我们只希望 Mock 服务器的 Response,可以使用 Fake Server。
mongoose
JavaScript
MongoDB
Node.js
Promise
回调函数
Promise 是 JavaScript 中的一种异步编程范式,
一个 Promise 对象表示一个即将完成但还未完成的操作。
鉴于 JavaScript 中异步和 回调 的编程风格,
Promise 模式可以有效地避免『Callback Hell』。
Promise 最初由 Q, jQuery 1.5, RSVP.js, bluebird 等实现,
现有 Promises/A+ 社区标准可以参考:https://promisesaplus.com/,在 纳入 ES6 后浏览器和 Node.js 都相继给出了实现。
初始化
传入一个回调函数即可初始化一个 Promise 对象 padmin
:
var padmin = new Promise(function(resolve, reject){
user.find({role: 'admin'}, function(err, admins){
if(err) reject(err);
else resolve(admins);
});
});
Vim
字符串
快捷键
正则表达式
总有人问我 Vim 中能不能查找,当然能!而且是超级强的查找!
这篇文章来详细介绍 Vim 中查找相关的设置和使用方法。
包括查找与替换、查找光标所在词、高亮前景/背景色、切换高亮状态、大小写敏感查找等。
Markdown
Vim
Jekyll
靠 Vim 写 Jekyll 博客已经很久了,编写代码块(Code Fence)时键入前后的```
,
以及手动编写文章头信息(Front Matter)一直是个麻烦的事情。
今天就通过Vim键盘映射来对这两种语法提供回车展开支持。最终效果如下:
MongoDB
Node.js
Redis
systemd
systemd 是 Linux 下的一款系统和服务管理器,
该软件的初衷是提供精确的服务间依赖,以此支持并行启动来提高性能。
越来越多的 Linux 发行版都由 sysvinit 迁移到了 systemd(包括 Debian!)。
在这些 Linux 系统中,用原生的 systemd 来托管 Node.js 进程足够满足一般开发者的要求。
借由 systemd 可以很方便地处理依赖关系和监测日志。
systemctl
systemctl
是查询和控制 systemd 的主要命令,下面以 mongod
为例介绍常用参数:
MongoDB 是 Node.js 下非常常见的 NoSQL 数据库,在 ArchLinux 下通过 pacman 安装:pacman install mongodb
,安装成功后 mongod
即为可用的 systemd 服务。
# 查看服务状态
systemctl status mongod
# 启动服务
systemctl start mongod
# 停止服务
systemctl stop mongod
# 重启服务
systemctl restart mongod
# 设为自启动
systemctl enable mongod
# 取消自启动
systemctl disable mongod
JavaScript
迭代器
生成器
ES6
ES6(ECMAScript 2015)中提出了生成器的概念,进一步完整了JavaScript语言。
本文介绍了可迭代协议与迭代器协议的概念区别,以及生成器的声明与使用方法。
生成器函数
生成器函数是用来返回生成器的函数,生成器是一种有状态的迭代器,
可实现较复杂的迭代行为,比如生成ID。
生成器函数使用function*
语法来定义:
function* idMaker(){
var index = 0;
while(index<3){
yield index++;
}
}
生成器函数也可以通过GeneratorFunction
(类似Function
)、function* expression
来定义(可以使用匿名函数)。
NPM
Node.js
测试
Mock
在Node.js测试中,常常会需要构造某种项目目录。
为每个测试用例添加相应的目录结构既费时又难以维护。
这时Mock文件系统便是最佳选择,相关的工具包括: