繁体   English   中英

如何使用 AdonisJS 验证数字

[英]How to validate number using AdonisJS

我正在使用 AdonisJS 4.1 处理项目,我在验证数字时遇到问题,这是我在控制器代码中的代码

const validation = await validate(request.all(), {
    posts_per_page: required|number|min:0
})

当我尝试用大于 0 的任何数字填充表单字段时,它总是给出如下错误消息:

number validation failed on posts_per_page

任何解决此问题的帮助将不胜感激,谢谢。

这里的主要问题是默认情况下,HTML 表单会将所有字段作为字符串发送。 您需要先 使用消毒剂对它们 进行消毒

const { sanitize } = use('Validator')

const data = sanitize(request.all(), {
  posts_per_page: 'to_int',
})

然后您将能够使用data而不是request.all()进行验证。

另外,请注意出于安全原因,您应该使用request.only()而不是request.all()

min规则评估值的长度(即字符串或数组的长度),而不是值本身。 为此,您需要使用above规则。 尝试

const validation = await validate(request.all(), {
    posts_per_page: 'required|number|above:0'
})
const rules = {
  posts_per_page: 'required|number|min:0'
}

const validation = await validate(request.all(), rules)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM