有效负载验证未按预期工作

payload validation is not working as expected

名为 creator 的数组的负载验证工作不正常 这是有效载荷验证:

   creator: {
            _id:Joi.string().required(), 
            name: Joi.string().required()
        }

创建者应该是必填字段,如果未作为输入输入到 http 正文中,应该抛出错误。 这是猫鼬模式:

   var User = {
        _id: {type: Schema.ObjectId, ref: 'Admin'},
        name: {type: String, ref: 'Admin'}
    };
    var Note = new Schema({
    creator: User });

目前,如果我不在 http 正文中传递 creator,没有它仍然可以正常工作。

不确定它的猫鼬方面,但如果问题是 "how to validate an array with Joi"

creator: Joi.array().items(Joy.object({
            _id:Joi.string().required(), 
            name: Joi.string().required()
        }))

既然您将它命名为 "creator"(单数)并且想要一个数组,那么听起来您可能想要接受单个对象或对象数组。您可以在末尾使用 .single() 来做到这一点:

creator: Joi.array().items(Joy.object({
            _id:Joi.string().required(), 
            name: Joi.string().required()
        })).single()

这将同时接受 creator: { _id: '' , name: ''}creator: [{_id: '', name: ''}]