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.headersresponse.socketresponse.status响应状态(可以通过状态码设置)response.message获取响应的状态信息(与status关联)response.body响应主题response.set(field, value)
request常用属性
request.url(ctx.url)request.method()请求方式request.headers