如何使用AdonisJS验证号码

时间:2018-08-03 09:47:09

标签: node.js validation adonis.js

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

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

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

number validation failed on posts_per_page

在此之前,对解决此问题的任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

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

const { sanitize } = use('Validator')

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

然后,您将可以使用data代替request.all()进行验证。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

const rules = {
  posts_per_page: 'required|number|min:0'
}

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