Joi «когда» проверка ключевых слов не работает для объектов - PullRequest
0 голосов
/ 02 октября 2018

У меня есть схема, подобная следующей.что мне нужно, это когда у меня есть поле _id в объекте адреса, тогда adressJoiSchema не должен применяться, а когда у него нет поля _id, тогда должна применяться adressJoiSchema.Но каждый раз это увольнение проверок по адресуJoiSchema

    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()

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...