egg,请求 ?page=1&pageSize=10,ctx.request.query打印出page为字符串格式的
需要参数解析成数字格式的,是否哪个插件没开启,谢谢
7 回复
egg默认开启body-parser的
@KevinHades 是的,可是很奇怪,解析成字符串了
等一下,你是说page是字符串格式的?这个参数的值是字符串格式的?那没问题呀,query参数的值本来就是字符串类型的。
URL 的 query 参数本来就是字符串,你可以放在 body 里上传就是原来的类型了
用 JoI 校验一下呗
url里面传值全部是字符串。可以后端手动根据参数名(page)转换下类型。或者post方法传json
配置 egg-validate
插件的 convertType ,会改变 query 参数的类型:
const rule = {
page: {
type: 'int?',
convertType: 'int',
min: 1,
},
pageSize: {
type: 'int?',
convertType: 'int',
min: 1,
},
};
this.ctx.validate(rule, this.ctx.query);