如何覆盖@hapi/joi中的错误信息?
How to override error message in @hapi/joi?
我正在尝试覆盖 Joi
中的自定义错误消息。
假设我有如下模式。
const joiSchema = Joi.object({
name: Joi.string().required(),
email: Joi.string().email().required()
})
try{
const schema = joiSchema.validateAsync(req.body);
}catch(error){
error.details.map((detail) => {
// customize error message
});
}
我需要像下面这样发送错误消息。
{ errors: { name: "Name is Required.", email: "Email is Required." } }
如何在 Validation Error
.
的 details
数组中得到 fieldName
就像 name
我找到了如下解决方法。
const errors = [];
err.details.forEach((detail) => {
const currentMessage = detail.message;
detail.path.forEach((value) => {
errors.push({ [value]: currentMessage });
});
});
你可以得到错误并像它一样处理
catch(error){
var data = data.details;
var message = data[0].message; // you can get other fields also like this
var json={"status":"0","message":message,"data":{}}; // you can customize your json response
}
以下帮助方法
const errorList = [...errors];
errors.forEach((error, index) => {
const tmpError = { ...error };
tmpError.message = "Your custom error message";
errorList[index] = tmpError;
});
return errorList;
我正在尝试覆盖 Joi
中的自定义错误消息。
假设我有如下模式。
const joiSchema = Joi.object({
name: Joi.string().required(),
email: Joi.string().email().required()
})
try{
const schema = joiSchema.validateAsync(req.body);
}catch(error){
error.details.map((detail) => {
// customize error message
});
}
我需要像下面这样发送错误消息。
{ errors: { name: "Name is Required.", email: "Email is Required." } }
如何在 Validation Error
.
details
数组中得到 fieldName
就像 name
我找到了如下解决方法。
const errors = [];
err.details.forEach((detail) => {
const currentMessage = detail.message;
detail.path.forEach((value) => {
errors.push({ [value]: currentMessage });
});
});
你可以得到错误并像它一样处理
catch(error){
var data = data.details;
var message = data[0].message; // you can get other fields also like this
var json={"status":"0","message":message,"data":{}}; // you can customize your json response
}
以下帮助方法
const errorList = [...errors];
errors.forEach((error, index) => {
const tmpError = { ...error };
tmpError.message = "Your custom error message";
errorList[index] = tmpError;
});
return errorList;