用Joivalidation嵌套对象

如何使用joivalidation这个对象? 我用Hapi api使用Joi。

{ "email":"rambo@gmail.com", "password":"abc123", "active":"", "details": { "firstName": "Rambo", "lastName": "Comando", "phoneNumber": "5554446655", "billing":{ "firstName": "", "lastName": "", "phoneNumber": "", "address": "", "adress2": "", "postalCode": "", "city": "", "state": "", "country": "", "stripeId": "" } } } 

我试过这样做,但它不工作。 什么是这样做的正确方法?

 payload: { email: Joi.string().email().required(), password: Joi.string().alphanum().min(8).max(30).required(), active: Joi.boolean(), details: Joi.object().keys({ firstName: Joi.string().max(50), lastName: Joi.string().max(50), phoneNumber: Joi.number().integer().min(10).max(11), billing : Joi.object().keys({ firstName: Joi.string().max(50), lastName: Joi.string().max(50), phoneNumber: Joi.string().integer().min(10).max(11), address: Joi.string().alphanum(), adress2: Joi.string().alphanum(), postalCode: Joi.string().alphanum(), city: Joi.string(), state: Joi.string(), country: Joi.string(), stripeId: Joi.string().alphanum() }) }) } 

林不知道我在哪里丢失的东西了。

代码中有一个错误,在这一行:

 phoneNumber: Joi.string().integer().min(10).max(11), 

Node.js抛出exception,因为它:

TypeError:Joi.integer不是一个函数

如果将其更改为string()number()所有内容都将按照以下方式工作:

 phoneNumber: Joi.number().min(10).max(11), 

这很明显,所以我只是想知道,你怎么错过了? 一切与你的Joi模式似乎都没问题。