app.xxx
文档https://koajs.com/#application
- app,env 获取环境变量
- app.proxy 获取代理
- app.suddomainOffset
- app.listen() 开始监听一个端口
- app.callback()
- app.use() 插入中间件
- app.keys 用于加密
- app.context 上下文
- app.on(‘error’,fn) 监听错误
- app.emit 触发事件
ctx.xxx
- ctx.req //Node.js封装的请求 IncomingMessage
- ctx.res
- ctx.request //Koa封装的请求
- ctx.response
- ctx.state 跨中间件分享数据
- ctx.app
- ctx.cookies.get/set
- ctx.throw 抛出错误
- ctx.assert 断言
- ctx.respond 不推荐使用
委托
Request委托 & Response委托
委托:我自己不想做,让别人做
ctx.body === ctx.response.body
ctx就是response的委托。
ctx.request.xxx
- request.header
- request.method 请求方法
- request.url
- request.href
- request.pat 请求路径
- request.host
- request.hostname
- request.query 查询参数
- …
- request.idempotent
- 幂等
- get同一个文件,get一个和多次是没有区别的,不管执行多少次,结果都是一样的 就是幂等
- 其任意多次执行所产生的影响均与一次执行的影响相同。
- request.get(field)
ctx.response.xxx
- response.status 设置状态码
- response.body * 5 五种不同得类型 // string, buffer ,stream ,json(object || array), null
- response.set() *2 设置响应头 key:value 或 对象
- response.append() 添加一个响应头 //可以添加重复得响应头。set会覆盖
- response.get() 获取响应头