【发布时间】:2018-02-27 07:25:32
【问题描述】:
如何使用 joi 验证这个对象?我将 Joi 与 Hapi api 一起使用。
{
"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()
})
})
}
我不确定我错过了什么。
【问题讨论】:
-
您能否具体说明“不工作”的含义?
-
@KidBinary 嘿,它根本无法运行我的 node.js 应用程序。问题出在此验证中,因为我还有许多其他对象,但没有像这样的嵌套对象。
-
它会引发 Node.js 异常、Joi 验证错误或只是忽略您尝试使用它验证的有效负载?
-
@KidBinary 我修复了 phoNumber 但仍然无法正常工作。我在我的 Hapi 路由器上使用它。