代码之家  ›  专栏  ›  技术社区  ›  KAT

validate.js返回错误“未知验证程序模式”

  •  0
  • KAT  · 技术社区  · 6 年前

    我试图使用validate.js验证前端的输入,然后再使用node将其输入到数据库中,但是我得到了一个无法识别的错误。我已经检查了文档,相信我设置的约束是正确的。准确的错误是:

    message:"Unknown validator pattern"
    

    我的验证器设置如下:

                        let alphanumeric = /^[a-zA-Z0-9]*$/;
                        let constraints = {
                            clientUsername:{
                                presence: true,
                                length: {min:8, max:15},
                                pattern:alphanumeric,
                                message: 'make sure client username is between 8-15 characters, is only numbers and letters'
                            },
                            tileCategory:{
                                presence:true,
                                length:{min:1, max:1},
                                numericality:{
                                    onlyInteger:true,
                                    lessThanOrEqualTo:tileCategoryNumber,
                                },
                                message:'enter a number, 1 char in length, less than or equal to 3' //the current number of tiles
                            }
                        };
    
                        validate({clientUsername: input.clientUsername},constraints);
    

    起初我以为这是regex模式,但试着把它注释掉,然后它说

    message:"Unknown validator messsage"
    

    所以我猜我的验证器总的来说有点问题。

    在最上面我当然包括 const validate = require('validate.js');

    2 回复  |  直到 6 年前
        1
  •  0
  •   OwenP    6 年前

    类似的东西烧死了我,看看 the documentation 再一次。

    pattern 有点像是 format 看起来应该是:

    {
        format: {
            pattern: "[A-Za-z0-9]+"
        }
    }
    

    你想利用 图案 在“顶层”。我在文档中看不到任何暗示helper模式的东西,比如 alphanumeric 存在。(我认为工具使用的语言是” 图案 格式 验证器“但我不确定。)

    您所声明的错误消息还意味着拼写错误:它告诉您它无法识别 messsage ,它有3个字母“s”,但应该有2个。

        2
  •  0
  •   mochsner    6 年前

    我可以看出问题出在哪里。首先,您使用的是基于js的regex,前面和后面都是/。尝试删除这些。

    除此之外,我建议尝试删除字母数字参数并直接输入regex…这也可能是类型问题。

      pattern:"^[a-zA-Z0-9]*$",
    

    希望这有帮助!:)