validateAsync - 异步验证
验证失败自动抛出错误
快速开始
基础用法
ValidationError
属性
方法
1. toJSON() - 转换为 JSON(用于 API 响应)
2. getFieldError(field) - 获取指定字段的错误
3. getFieldErrors() - 获取所有字段的错误映射
4. hasFieldError(field) - 检查字段是否有错误
5. getErrorCount() - 获取错误数量
Express 集成
基础集成
完整 CRUD 示例
⚠️
SchemaUtils当前只负责生成派生 Schema(如pick()/omit()/partial()/extend()),不会自动删除运行时对象上的额外字段。返回公开响应时,请先在业务层显式投影数据,再用validate()校验投影结果。
错误处理
自定义错误格式
分类错误处理
日志记录
完整示例
用户注册 API
API 参考
validateAsync(schema, data, options?)
参数:
schema- JSON Schema 或 DslBuilder 实例data- 待验证的数据options- 验证选项(可选)locale- 语言设置(如 'zh-CN', 'en-US')format- 是否格式化错误(默认 true)
返回值:
- 验证通过:返回处理后的数据
- 验证失败:抛出
ValidationError
示例:
ValidationError 类
构造函数:
属性:
name: 'ValidationError'message: string- 友好的错误消息errors: Array<Object>- 格式化后的错误项列表(如path、message、keyword、params)data: any- 原始输入数据statusCode: 400- HTTP 状态码
方法:
toJSON()- 转换为 JSON 格式getFieldError(field)- 获取指定字段的错误getFieldErrors()- 获取所有字段的错误映射hasFieldError(field)- 检查字段是否有错误getErrorCount()- 获取错误数量
相关文档
- SchemaUtils 链式调用 - Schema 复用简化方法
- validate.md - 传统同步验证方法
- error-handling.md - 错误处理指南
- validate-async 完整示例 - 顶层
validateAsync()、ValidationError与业务层异步检查示例
对应示例文件
示例入口: validate-async.ts
说明: 覆盖 validateAsync() 的成功路径、ValidationError 捕获,以及“结构校验通过后再做业务层异步检查”的推荐方式。
版本: v1.0.4
更新日期: 2025-12-29
作者: schema-dsl Team