koa
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Koa.js
何 翊 宇 (aka. 死 马 )<br />
dead-horse<br />
deadhorse_busi<br />
2B 码 农 死 ⼩小⻢马
什 么 是 Koa ?
• 提 供 最 基 础 功 能 的 web 框 架<br />
• TJ Holowaychuk 出 品<br />
• 和 express 共 享 大 部 分 的 底 层 模 块<br />
• 通 过 generator 提 供 更 优 的 异 步 控 制 和 异 常 处 理
异 常
无 法 捕 获 异 步 中 的 异 常
通 过 callback 处 理 异 常
Callback Hell
• 重 构 代 码 callbackhell.com<br />
• async<br />
• promise<br />
• ES7 async function<br />
• ES6 generator and co
async function
async function 未 至<br />
generator 已 在
generator and co
前 戏 结 束<br />
进 入 正 题
Hello Koa
异 常 处 理 in express
异 常 处 理 in <strong>koa</strong>
stream in express
stream in <strong>koa</strong>
• generator 带 来 更 自 然 的 异 常 处 理<br />
• 抽 象 的 context + 神 奇 的 stter 简 化 代 码
Middleware
express<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
request<br />
response<br />
next<br />
next
<strong>koa</strong>
express-compression<br />
<strong>koa</strong>-compress<br />
VS
“Talk is cheap, show me the code.”<br />
– Linus Torvalds
https://github.com/dead-horse/<strong>koa</strong>-step-by-step
更 多 学 习 资 料<br />
• <strong>koa</strong>js/<strong>koa</strong>: 源 码 是 最 好 的 教 程<br />
• <strong>koa</strong>/examples: 各 种 示 例<br />
• <strong>koa</strong>js/kick-off-<strong>koa</strong>: 交 互 式 学 习 教 程<br />
• <strong>koa</strong>js/workshop: TDD 式 学 习 教 程<br />
• tj/co: 基 于 generator 的 异 步 流 程 控 制 解 决 方 案<br />
• jshttp: web 框 架 的 基 石
Q&A<br />
Thanks