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

时间:2017-10-25 17:31:07

标签: node.js mongoose mongoose-schema hapijs joi

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

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

创建者应该是必填字段,如果没有作为http体中的输入输入,则应该抛出错误。 这是mongoose架构:

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

目前,如果我没有在http正文中传递创建者,那么没有它就可以正常工作。

1 个答案:

答案 0 :(得分:1)

不确定它的猫鼬方面,但问题是"如何使用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: ''}]