koa在趋势上应该比express风头更劲,因为koa可以调用async, await来解决异步,避免了多层嵌套导致代码的混乱。
但在很多基本功能上,koa和express区别不大,所以有了express的基础之后再学习koa就轻松很多。这和学习过一种模板引擎之后再学习其他模板引擎都会容易很多是一样的道理。
启动步骤
- 引入koa对象
const Koa = require("koa")
- 创建服务器对象
const app = new Koa()
- 这里需要注意的是,Koa创建的服务器是Koa实例,所以用
new
来创建
- 这里需要注意的是,Koa创建的服务器是Koa实例,所以用
- 配置中间件
app.use()
- 监听端口
app.listen(port)
函数参数
context
上下文对象- 是从请求到响应过程中的一个描述对象
- 将
request
+response
封装到一个对象里
next
函数:用于调用下一个中间件request
:请求对象response
:响应对象
需要注意的是koa创建的服务器的request
和response
都在context
身上,所以写法应该是
1 | const Koa = require("koa"); |
写作ctx.req
和ctx.res
也可以。但是不要使用node的原生res
对象
context
常用属性
ctx.cookies.get(name)
获取cookiesctx.cookies.set(name, value)
设置cookies
response
常用属性
response.header
/response.headers
response.socket
response.status
响应状态(可以通过状态码设置)response.message
获取响应的状态信息(与status关联)response.body
响应主题response.set(field, value)
request
常用属性
request.url(ctx.url)
request.method()
请求方式request.headers