04.12.2015 Views

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!