1.搭建第一个koa程序
const Koa = require('koa')
const app = new Koa()
app.use((ctx) => {
ctx.body = "ok"
})
app.listen(3000)
2.中间件与洋葱模型
中间件使用时,遇到await next()
时会先进入内层的中间件,执行完之后再出来上一层继续执行
app.use(async (ctx, next) => {
console.log(1)
await next()
console.log(2)
ctx.body = "ok"
})
app.use(async (ctx, next) => {
console.log(3)
await next()
console.log(4)
})
app.use(async (ctx, next) => {
console.log(5)
await next()
console.log(6)
})
// 打印:1,3,5,6,4,2
app.listen(3000)
3.使用koa-router
安装
npm i koa-router --save
使用 ```javascript const Router = require(‘koa-router’) const app = new Koa() const router = new Router() router.get(‘/‘, ctx => { ctx.body = ‘这是主页’ })
app.use(router.routes())
3.配置子路由前缀
```javascript
// 配置 user router
const usersRouter = new Router({ prefix: '/users' })
usersRouter.get('/', ctx => {
ctx.body = 'user list'
})
app.use(usersRouter.routes())
4.HTTP options 方法的作用是什么
- 检测服务器所支持的请求方法
options请求返回的响应头存在一个allow字段,其中包括允许诸如get, post等请求
- CORS 中的预检请求,检查是否支持跨域
5.使用 allowedMethods
作用:
- 实现options请求,返回允许的 methods
- 不允许(405),支持这个方法但代码中还没写这个接口
- 不支持(501),例如Link方法,koa不支持这个方法,写了这个接口也没用
app.use(usersRouter.allowedMethods())
6.RESTful API 的最佳
- 安装
npm i koa-body-parser -S
- 使用 ```javascript const bodyParser = require(‘koa-body-parser’) app.use(bodyParser())
usersRouter.post(‘/‘, ctx => { console.log(ctx.request.body) ctx.body = ‘create user’ })
<a name="SC7xK"></a>
### 8.设置http请求响应
1. 设置 status
1. 设置 body
1. 设置 响应头
```javascript
ctx.set('Allow', 'GET, POST')