验证完全有效的对象时,我不断收到(不允许$ __)错误

黛丽

我使用Node.js API,也使用Joi包来验证我的条目,但是我不断收到错误消息(不允许$ __),而我提交的表单似乎是完全有效的。我进行了很多搜索,但找不到任何有用的解决方案。

使用的Joi版本是14.3.1,节点版本是14.3.1

这是模式:

const schema = Joi.object({
    name: Joi.string().min(5).max(50).required(),
    price : Joi.object().required().allow(),
    description : Joi.string().min(15).max(400).required().allow(),
    isFavorate : Joi.boolean().required().allow(),
    place: Joi.object().required().allow(),
    tags : Joi.array().required().allow(),
    isDeliveryAvailable : Joi.boolean().required().allow(),
    rating: Joi.number().min(0).required().allow(),
    images : Joi.required().allow(),
    secondHand : Joi.required().allow()
})
    return Joi.validate(item , schema) ;
}

表格数据:

{
    "name" : "an image",
    "price" : {
        "IQD" : 1000,
        "USD" : 10
    },
    "place" : {
        "name" : "fata rap"
    },
    "description" : "some item safas dfsa d",
    "isFavorate" : true,
    "tags": ["some tag 1", "tag 2"],
    "isDeliveryAvailable": true,
    "rating" : 4,
    "comments":["comment 1" , "comment 2"],
    "variants": [
        {"name": "item one variant one", "price":{
            "IQD":1000,
            "USD": 1}
        },
            {"name": "item one variant tow", "price":{
            "IQD":2000,
            "USD": 2}
        },
            {"name": "item one variant three", "price":{
            "IQD":1000,
            "USD": 1}
        }
        ],
    "category" : "5d479c60e35db51e3084c007",
    "secondHand" : "true"


}

该模型 :

const Item = mongoose.model('Items',new  mongoose.Schema({
    name: {
        type : String,
        required: true,
        minlength : 5,
        maxlength : 50
    },

    price : {
        type: Object,
        IQD: {type : Number, required : true, min : 0},
        USD:  {type : Number, required : true, min : 0 }
    },

    description : {
        type : String,
        minlength : 15,
        maxlength : 400,
        required : true
    },

    isFavorate: {
        type: Boolean,
        default: false,
        required : true
    },

    place : {
      name : {
        type : Object,
        required : true,
      }
    },

    tags : {
        type : [String],
        required : true,
    },

    isDeliveryAvailable : {
        type : Boolean,
        default: true,
        required: true
    },

    rating: {
        type: Number,
        min : 0,
        max : 10,
        required : true
    },

    comments : {
        type : [String],
    },

    images: {
        type: [Buffer],
        requied : true
    },

    imageURLArray : [String],

    variants: [Object],

    category: {
        type : mongoose.Schema.Types.ObjectId,
        ref: 'Category'
    },

    subcategory: {
        type : mongoose.Schema.Types.ObjectId,
        ref: 'Subcategory'
    },

    secondHand : {
        type : Boolean,
        required : true,
        default : false
    }

}));

任何想法将不胜感激。谢谢

丹尼

我想item = new Item(formData);这使该项目成为猫鼬对象。如果您这样做:

Joi.validate(item._doc, schema);

"$__" is not allowed未观察到错误。不过,这看起来有点骇人听闻。如果我是您,那么在保存到数据库之前,我可能会使用Mongoose进行验证,或者可能仅使用Joi来验证用户输入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

编译时错误:内容是不允许在序言

在GAE上解析完全有效的XML时,“序言中不允许内容”

URLConnection不允许我访问有关Http错误的数据(404,500等)

Parse.com错误“启用固定功能时,不允许使用此方法。” 当我使用PFQueryTableViewController子类时

MySQL不允许我向表添加外键。没有错误讯息

错误:此处不允许解析对象

有效时验证错误消息不会隐藏

我收到错误“ CharField不支持的查找'包含'或不允许在字段上加入。”

我想将查询存储为JSON对象。(错误:SELECT INTO语句中不允许FOR JSON子句。)

关闭对象时,不允许运行时错误'3704'。VBA中的SQL语句

尝试删除不允许的属性时引发错误

打开文件时收到“不允许写”错误

计划时Terraform输出“错误:不允许变量”

Hibernate不允许我处理凭据错误的异常

以root身份删除时,不允许操作错误

尝试移动aa用户时,root收到“不允许操作”错误。bash_profile

在井字游戏中检查JButton状态时,收到“错误:'void'类型不允许

批处理错误,不允许我设置变量

CSS验证器给出了不允许的错误

我不断收到 -1700 错误

我在 mysql 函数中有错误?ERROR 不允许从函数返回结果集

脚本有随机的“不允许操作”错误

我收到错误“knn 中的错误(train = prc_train,test = prc_test,cl = prc_train_labels,:不允许缺失值”

如果我不断收到错误怎么办:在封闭作用域中定义的局部变量 j 必须是最终的或有效的最终

验证错误:此时元素输入不允许属性 onfocusout

为什么我会收到此错误 - 错误:EPERM:不允许操作,未找到 mkdir 'C:\Users\Aniket' 命令:create-react-app

我收到 NoReverseMatch 错误,但我认为我的文件有效

在提交表单时,我收到一个错误“方法不允许” - Javascript

我的“不允许的参数::乘客”Rails 错误来自哪里?