nodejs-koa-blog
nodejs-koa-blog copied to clipboard
post 验证 bug
// 管理员注册 router.post('/register', async (ctx) => { // 通过验证器校验参数是否通过 const v = await new RegisterValidator().validate(ctx);
验证器默认会验证query和body等全部参数, 当将参数放到params时,验证器也可以通过验证, 没有针对ctx.body作限制
有无好的实现方式
// 管理员注册 router.post('/register', async (ctx) => { // 通过验证器校验参数是否通过 const v = await new RegisterValidator().validate(ctx);
验证器默认会验证query和body等全部参数, 当将参数放到params时,验证器也可以通过验证, 没有针对ctx.body作限制
有无好的实现方式
你好,谢谢你的指正,这个需求可以实现的,在 lin-validator-v2.js 文件下的 _assembleAllParams 函数中,加多一个参数,这个参数指定返回是哪种类型的参数即可。
参考代码
_assembleAllParams(ctx, type) {
switch (type) {
case 'body':
return {
body: ctx.request.body
}
break;
case 'query':
return {
query: ctx.request.query
}
break;
default:
return {
body: ctx.request.body,
query: ctx.request.query,
path: ctx.params,
header: ctx.request.header
}
}
}