我对属性有自己的自定义验证,我想返回一个 400 响应,该响应类似于在其他字段上返回的 JOI.validation。这意味着除了错误和消息之外,我还想返回一个验证属性——这样客户端就可以知道要突出显示哪个字段。
所以,而不是这个
{
"statusCode": 400,
"error": "Bad Request",
"message": "phone validation error: invalid phone number"
}
我想用这个回复
{
"statusCode": 400,
"error": "Bad Request",
"message": "phone validation error: invalid phone number"
"validation": {
"source": "payload",
"keys": [
"phone"
]
}
如何在 hapi 回复中添加验证?
我一直在这样做 - 这一直没有奏效
e.validation =
{
source: "payload",
keys: [
"phone"
]
}
reply(Boom.badRequest(e));
我还假设我不能为 Joi 提供自定义验证器,否则我只会扩展 Joi。但是,我可以在回复中使用 Joi 验证错误类型或对象来在我的回复中获取类似 Joi 的对象结构。
顺便说一句,我的电话验证不是一个简单的正则表达式,并且有特殊情况,所以我不能使用 Joi 内置的正则表达式验证器。