http参数类型
- path
- query
- headers
- body
get query参数
url静态参数
ctx.query 获取参数,是一个对象
www.baidu.com?id=1&name=2
ctx.query 获取参数,是一个对象
url动态参数
ctx.params,参数是一个对象
www.baidu.com/list/23
路由传参
router.get('/list/:id', constroller.list.detail)
post 请求参数
ctx.request.body 获取 post 传参
'use strict';
const { Controller } = require('egg');
class AppController extends Controller {
// class 里面的方法都是异步的
async index() {
const { ctx } = this;
ctx.body = ctx.request.body;
}
}
egg-validate对参数验证
ctx.request.body
'use strict'
const { Controller } = require('egg')
class AppController extends Controller {
async index() {
const { ctx } = this
const validateRule = {
name: { type: 'string' },
age: { type: 'number' },
id: { type: 'number' }
}
ctx.validate(validateRule)
ctx.body = ctx.request.body
}
}
plugins.js 配置插件
// http参数验证
exports.validate = {
enable: true,
package: 'egg-validate',
};
put & patch & delete
put,全部更新
- put 要求前端提供的一定是一个完整的资源对象
- 缺的那些字段,应该被清空
patch,用来更新局部资源
- 只传一个name到指定资源去,表示该请求是一个局部更新,后端仅更新接收到的字段。
路由
//
router.put('/user/:id', controller.user.edit);
// 删除
router.del('/user/:id', controller.user.del);
获取参数
const { ctx } = this;
ctx.request.body