路由
为了处理URL,我们需要引入koa-router这个middleware,让它负责处理URL映射
先在package.json中添加依赖项然后安装
1 | "koa-router": "7.0.0" |
修改app.js的代码
1 | const Koa = require('koa'); |
处理get请求
使用router.get(‘/path’, async fn)来注册一个GET请求。
可以在请求路径中使用带变量的/hello/:name,变量可以通过ctx.params.name访问
处理post请求
处理post请求,可以用router.post(‘/path’, async fn)
koa-bodyparser
post请求通常会发送一个表单,或者JSON,它作为request的body发送,但无论是Node.js提供的原始request对象,还是koa提供的request对象,都不提供解析request的body的功能!
所以,我们又需要引入另一个middleware,koa-bodyparser来解析原始request请求,然后,把解析后的参数,绑定到ctx.request.body中。
在package.json中添加依赖项然后安装
1 | "koa-bodyparser": "3.2.0" |
修改app.js,引入koa-bodyparser:
1 | const bodyParser = require('koa-bodyparser'); |
在合适的位置加上(必须在router之前)
1 | app.use(bodyParser()); |
使用
1 | router.post('/signin', async (ctx, next) => { |
注意,用var name = ctx.request.body.name || ‘’拿到表单的name字段,如果该字段不存在,默认值设置为’’
跨域
当发送请求时,会出现一个跨域问题,这时候就需要koa2-cors来处理
在package.json中添加依赖项然后安装
1 | "koa2-cors": "^2.0.6" |
修改app.js
1 | var cors = require('koa-cors'); |
重构
1 | url2-koa/ |
前端使用
- 按照惯用的发送请求的方法
- url为http://127.0.0.1:3000[请求路径]