egg,请求 ?page=1&pageSize=10,ctx.request.query打印出page为字符串格式的
发布于 3 个月前 作者 JingMo 1688 次浏览 来自 问答

需要参数解析成数字格式的,是否哪个插件没开启,谢谢

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);
回到顶部