Joi“何时”关键字验证不适用于对象

时间:2018-10-02 14:38:40

标签: javascript node.js mongodb validation joi

我有一个类似以下的架构。我需要的是,当我在地址对象中具有_id字段时,则不应应用adressJoiSchema;当其没有_id字段时,则应应用adressJoiSchema。 但是每次它在adressJoiSchema中触发验证

    const schema = joi.object({
    name: joi.string().min(3).max(50).required(),
    address: joi.
        object({ _id: joi.string() }).allow(null),
    bankdetails: joi.array().items(bankValidate).optional(),
    location: joi.object({
        type: joi.string().optional(),
        coordinates: joi.array().optional()
    }).optional(),
    isactive: joi.boolean().default(true)

}).
    when(
        joi.object({
            address: joi.object().keys({
                _id: joi.string().exist()
            })
        }),
        {

            otherwise: joi.object({
                address: joi.object(adressJoiSchema)
            })
        }
    )
const adressJoiSchema = {
         userid: joi.objectid(),
        villagename: joi.string().min(3).
         max(50).required(),
         city: joi.string().min(3).max(50),
          district: joi.string().min(3).max(50),
      state: joi.string().min(3).max(50),
       zipcode: joi.number().positive().optional()

}

0 个答案:

没有答案