gpt4 book ai didi

node.js - 使用 Joi 验证嵌套对象

转载 作者:搜寻专家 更新时间:2023-10-31 23:51:19 24 4
gpt4 key购买 nike

如何使用 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()
})
})
}

我不确定我遗漏了什么。

最佳答案

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

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

Node.js 会因此抛出异常:

TypeError: Joi.integer is not a function

如果您将其更改为 string()number() 一切都会正常工作:

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

这很明显,所以我想知道,您是怎么错过的?您的 Joi 模式的其他一切似乎都很好。

关于node.js - 使用 Joi 验证嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46284691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com