CNode

egg,请求 ?page=1&pageSize=10,ctx.request.query打印出page为字符串格式的

问答
JJingMo发布于6 年前最后回复6 年前7 回复5615 浏览0 收藏

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

查看回复

回复 (7)

K
KevinHades#1·6 年前

egg默认开启body-parser的

J
JingMo#2·6 年前
引用 KevinHadesegg默认开启body parser的

@KevinHades 是的,可是很奇怪,解析成字符串了

K
KevinHades#3·6 年前

等一下,你是说page是字符串格式的?这个参数的值是字符串格式的?那没问题呀,query参数的值本来就是字符串类型的。

H
hyj1991#4·6 年前

URL 的 query 参数本来就是字符串,你可以放在 body 里上传就是原来的类型了

X
xiedacon#5·6 年前

用 JoI 校验一下呗

W
waitingsong#6·6 年前

url里面传值全部是字符串。可以后端手动根据参数名(page)转换下类型。或者post方法传json

X
xuxu7#7·6 年前

配置 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);
参与回复
登录后即可参与回复。登录