深入理解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一样
相关推荐
canonical_entropy5 小时前
AI时代,我们还需要低代码吗?—— 一场关于模型、演化与软件未来的深度问答
后端·低代码·aigc
颜如玉6 小时前
HikariCP:Dead code elimination优化
后端·性能优化·源码
考虑考虑7 小时前
Jpa使用union all
java·spring boot·后端
bobz9658 小时前
virtio vs vfio
后端
Rexi8 小时前
“Controller→Service→DAO”三层架构
后端
bobz9658 小时前
计算虚拟化的设计
后端
深圳蔓延科技9 小时前
Kafka的高性能之路
后端·kafka
Barcke9 小时前
深入浅出 Spring WebFlux:从核心原理到深度实战
后端
JuiceFS9 小时前
从 MLPerf Storage v2.0 看 AI 训练中的存储性能与扩展能力
运维·后端
大鸡腿同学9 小时前
Think with a farmer's mindset
后端