【问题标题】:How to validate number using AdonisJS如何使用 AdonisJS 验证号码
【发布时间】:2018-08-03 09:47:09
【问题描述】:

我正在使用 AdonisJS 4.1 进行项目,我在验证号码时遇到问题,这是我在控制器代码中的代码

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

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

number validation failed on posts_per_page

非常感谢您对解决此问题的任何帮助,谢谢。

【问题讨论】:

    标签: node.js validation adonis.js


    【解决方案1】:

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

    const validation = await validate(request.all(), {
        posts_per_page: 'required|number|above: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()

    【讨论】:

    • 您好,我正在尝试同样的事情,但它显示,SyntaxError Unexpected token const validation = await validate(request.all(), rules)。我不知道具体的问题是什么
    【解决方案3】:
    const rules = {
      posts_per_page: 'required|number|min:0'
    }
    
    const validation = await validate(request.all(), rules)
    

    【讨论】:

    • 您好,我正在尝试同样的事情,但它显示,SyntaxError Unexpected token const validation = await validate(request.all(), rules)。我不知道具体的问题是什么
    猜你喜欢
    • 2021-10-14
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 2010-09-07
    • 2019-12-03
    • 1970-01-01
    相关资源
    最近更新 更多