包含其他对象的 Joi 验证器对象

问题描述

我在请求体中得到了这种类型的 json:

"customerDetails": {
    "contact": {
        "firstName": "","lastName": "",},"address": {
        "addressSFID": "","cityAddress": "",}

我尝试使用这个架构:

customerDetails: Joi.object({
    contact: Joi.object({
        firstName: validateName(),lastName: validateName(),}),address: Joi.object({
        addressSFID: validateSfid(),cityAddress: validateGeneralAddressDetail(),})
}),

但它不起作用。没有抛出错误,但它没有像它应该的那样验证字段

当它是两个独立的对象时(两个在 customerDetails 内)

我应该使用什么语法?

解决方法

如果您只编写一次架构,则不需要使用 .keys()。当像这样向对象添加更多行 (keys) 时使用 .keys() :

Joi.object().keys({
  contact:Joi.object().keys({
        "firstName":Joi.string(),"lastName": Joi.string()
  }),address:Joi.object().keys({
        "addressSFID":Joi.string(),"cityAddress": Joi.string()
  })
})