首页 > 解决方案 > 如何使用 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

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

标签: node.jsvalidationadonis.js

解决方案


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

const { sanitize } = use('Validator')

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

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

此外,请记下您应该使用的笔记,request.only()而不是request.all()出于安全原因。


推荐阅读