如何修改fastest-validator的错误输出格式?
修改fastest-validator错误输出格式
你可以通过对验证返回的错误数组进行映射转换,快速得到目标格式:
const Validator = require("fastest-validator"); const v = new Validator(); const schema = { id: { type: "number", positive: true, integer: true }, name: { type: "string", min: 3, max: 255 }, status: "boolean" // 简写定义 }; const check = v.compile(schema); // 执行验证 const validationResult = check({ id: 2, name: "Adam" }); // 转换错误格式 if (validationResult !== true) { const formattedErrors = validationResult.map(error => ({ [error.field]: error.message })); console.log("格式化后的错误:", formattedErrors); }
代码说明
- 验证失败时,
check函数返回包含type、field、message的错误数组 - 使用
Array.map()遍历每个错误对象,以field值为键、message值为值,生成新的对象 - 最终输出的格式即为你需要的:每个错误对象以验证字段名为键,错误提示信息为值
如果需要全局统一处理这种格式转换,可以封装一个工具函数:
function formatValidationErrors(errors) { return errors.map(err => ({ [err.field]: err.message })); } // 使用示例 const formattedErrors = formatValidationErrors(validationResult);
内容的提问来源于stack exchange,提问作者Alireza
相关产品推荐
相关产品推荐

