深入理解Koa:中间件模型、API全览和与Express的对比(下)

  1. Koa API 全览之 app.xxx
  • 文档
  • 有以下这些,只要基础app.use,app.on,app.emit即可
php 复制代码
app.env
app.proxy
app.subdomainOffset
app.listen()
app.callback()
app.use(fn) 一一 插入中间件fn
app.keys
app.context
app.on('error',fn)
app.emit 一一 触发事件
  1. ctx.xxx相关app
js 复制代码
ctx.req // Node.js封装的请求
ctx.res
ctx.request //Koa封装请求
ctx.response
ctx.state一一跨中间件分享数据
ctx.app
ctx.cookies.get set
ctx.throw
ctx.assert
ctx.respond不推荐使用
  1. ctx.request.xxx
  • 文档,有一些api需要注意下
  • 其中有一个request.idemponent表示幂等,多次请求返回结果一样被称为幂等,通常认为get是幂等的
  • request.method
  • request.path
  • request.query
  1. ctx.response.xxx
  • 文档
  • response.status
  • response.body * 5 ,有五种不同的类型
  • response.set() * 2,两种形式
  • response.append()
  1. 总结
  • Koa原理
    • 封装请求和响应
    • 通过U型模型/洋葱模型构造中间件
  • 跟Express的区别
    • 模型不同
    • 语法特性不同(对Node.js7.6.0版本的要求不同)
    • 没有内置中间件
  • Koa API
    • 平平无奇,几乎和Express一样
相关推荐
码事漫谈4 小时前
多人共用一个 key,缓存命中率会不会因此降低?
后端
考虑考虑4 小时前
docker compose环境变量替换
运维·后端·自动化运维
武雄(小星Ai)5 小时前
飞书API上传26MB文件偶发失败:错误码9499与空响应体排坑实录
后端·api·排坑实录
徐小夕6 小时前
JitWord 4.0 万字分享:从协同工具到AI Word操作系统,聊聊3年产品创业史
前端·vue.js·后端
geovindu7 小时前
CSharp: Observer Pattern
开发语言·后端·观察者模式·设计模式·c#·.netcore·行为模式
Flynt7 小时前
把公司项目迁到 Spring Boot 4.0:编译通过只是开始
java·spring boot·后端
IT_陈寒8 小时前
Redis误用keys命令把生产环境搞崩了,血的教训
前端·人工智能·后端
她的男孩8 小时前
多租户和数据权限怎么共存?扒完拦截器注册链路,我找到 4 个隐蔽的坑
java·后端·架构
用户8356290780518 小时前
使用 Python 设置 Excel 页眉和页脚
后端·python
步行cgn8 小时前
IoC 控制反转:从概念到 Spring 的实现
后端