koa - dead horse

29
Koa.js

Upload: others

Post on 05-Oct-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Koa - dead horse

Koa.js

Page 2: Koa - dead horse

何翊宇(aka. 死马)

dead-horse

deadhorse_busi

2B码农死⼩小⻢马

Page 3: Koa - dead horse

什么是 Koa ?

Page 4: Koa - dead horse

• 提供最基础功能的 web 框架

• TJ Holowaychuk 出品

• 和 express 共享大部分的底层模块

• 通过 generator 提供更优的异步控制和异常处理

Page 5: Koa - dead horse

异常

Page 6: Koa - dead horse

无法捕获异步中的异常

Page 7: Koa - dead horse

通过 callback 处理异常

Page 8: Koa - dead horse

Callback Hell

Page 9: Koa - dead horse
Page 10: Koa - dead horse

• 重构代码 callbackhell.com

• async

• promise

• ES7 async function

• ES6 generator and co

Page 11: Koa - dead horse

async function

Page 12: Koa - dead horse

async function 未至 generator 已在

Page 13: Koa - dead horse

generator and co

Page 14: Koa - dead horse

前戏结束 进入正题

Page 15: Koa - dead horse

Hello Koa

Page 16: Koa - dead horse

异常处理 in express

Page 17: Koa - dead horse

异常处理 in koa

Page 18: Koa - dead horse

stream in express

Page 19: Koa - dead horse

stream in koa

Page 20: Koa - dead horse

• generator 带来更自然的异常处理

• 抽象的 context + 神奇的 stter 简化代码

Page 21: Koa - dead horse

Middleware

Page 22: Koa - dead horse

express

���

���

���

next next

request response

Page 23: Koa - dead horse

koa

Page 26: Koa - dead horse

– Linus Torvalds

“Talk is cheap, show me the code.”

Page 27: Koa - dead horse

https://github.com/dead-horse/koa-step-by-step

Page 28: Koa - dead horse

更多学习资料• koajs/koa: 源码是最好的教程

• koa/examples: 各种示例

• koajs/kick-off-koa: 交互式学习教程

• koajs/workshop: TDD 式学习教程

• tj/co: 基于 generator 的异步流程控制解决方案

• jshttp: web 框架的基石

Page 29: Koa - dead horse

Q&AThanks