用途:在 Hono 应用中做请求输入校验,让处理函数拿到类型安全的数据。校验以中间件形式运行,覆盖 JSON 请求体、表单数据、查询参数、路径参数、请求头与 Cookie。
主要能力:Hono 自带轻量 validator(hono/validator),无需外部依赖;官方提供 @hono/zod-validator(推荐)、@hono/typebox-validator、@hono/valibot-validator,以及支持任意实现 Standard Schema 规范的库的 @hono/standard-validator。可从 schema 推断类型,并支持自定义校验失败响应。
安装:Zod 用 npm install @hono/zod-validator zod;TypeBox 用 npm install @hono/typebox-validator @sinclair/typebox;Valibot 用 npm install @hono/valibot-validator valibot;通用规范用 npm install @hono/standard-validator。
基本用法:定义 schema 后传入对应目标,例如 zValidator('json', createUserSchema),在处理函数中用 c.req.valid('json') 读取。目标包括 json、form、query、param、header、cookie。可串联多个验证器分别校验参数、请求体与查询串。自定义错误处理可传入回调,用 result.error.flatten() 或 result.error.issues 返回 400。
数据与类型:文档示范了强制转换(z.coerce.number,查询参数默认是字符串)、默认值、transform、refine、discriminatedUnion、文件上传校验(限制大小与 MIME 类型)、可复用 schema 抽取与 extend、partial 等模式,以及分页等常见 schema。
限制与注意:请求头字段名必须小写,否则不生效;JSON 校验需要 Content-Type: application/json,表单校验需要 application/x-www-form-urlencoded 或 multipart/form-data;建议先校验再处理。文档标注版本为 Hono 4.x、@hono/zod-validator 0.2.x,更新于 2025 年 1 月,许可 MIT。收费、价格与平台信息暂未提供。