2015-10-06 28 views
0

我想在同一条路线上验证两个不同的有效载荷模式。这两种有效的选项有:一个路由,两个有效载荷在Hapi.js与Joi

validate: { 
    payload: { 
    email: Joi.string().required(), 
    password: Joi.string().required() 
    } 
} 

validate: { 
    payload: { 
    token: Joi.string().required() 
    } 
} 

我一直在使用的andor功能,这会非常接近于组合尝试,但它允许所有三个作为有效载荷传递:

validate: { 
    payload: Joi.object().keys({ 
    email: Joi.string().required(), 
    password: Joi.string().required(), 
    token: Joi.string().required() 
    }).and('email', 'password').or('token', 'email', 'password') 
} 

回答

3

其实我已经搞清楚了。我需要使用xor与两个依赖项中的一个:

validate: { 
    payload: Joi.object().keys({ 
    email: Joi.string(), 
    password: Joi.string(), 
    token: Joi.string() 
    }).and('email', 'password').xor('token', 'password') 
} 
相关问题