0

0

Zod Schema 中允许未定义字段透传的方法

霞舞

霞舞

发布时间:2025-08-03 19:44:01

|

199人浏览过

|

来源于php中文网

原创

zod schema 中允许未定义字段透传的方法

在使用 Zod 进行数据验证时,有时我们只需要验证请求数据中的一部分字段,而希望保留其他未在 schema 中定义的字段。默认情况下,Zod 会过滤掉所有未在 schema 中明确指定的字段,导致数据丢失。本文将介绍如何使用 Zod 的 passthrough() 方法,允许未定义字段的透传,从而实现只验证部分数据的目的。

Zod 提供了 passthrough() 方法来解决这个问题。该方法可以使 Zod 保留未识别的键,将其透传到输出结果中。

以下是一个示例:

import { z } from 'zod';

const schema = z.object({
  params: z.object({ dependent_id: z.string() }),
});

const req = {
  params: { dependent_id: "blah", bar: "baz" },
  body: { foo: "bar" },
  query: {}
};

const test = async () => {
  const { params, body, query } = await schema.passthrough().parseAsync(req);
  console.log("params: ", params);
  console.log("body: ", body);
  console.log("query: ", query);
}

test();

在这个例子中,我们定义了一个 schema,只验证 params 对象中的 dependent_id 字段。但是,我们希望保留 params 对象中的 bar 字段,以及 body 和 query 对象中的所有字段。

通过在 schema 上调用 passthrough() 方法,我们可以实现这个目的。运行上述代码,将会输出:

CA.LA
CA.LA

第一款时尚产品在线设计平台,服装设计系统

下载
params:  { dependent_id: 'blah', bar: 'baz' }
body:  { foo: 'bar' }
query:  {}

可以看到,params 对象中的 bar 字段,以及 body 和 query 对象中的所有字段都被保留了下来。

注意事项:

  • passthrough() 方法会保留所有未在 schema 中定义的字段,包括嵌套对象中的字段。
  • passthrough() 方法只影响解析后的输出结果,不会影响 schema 的验证逻辑。也就是说,如果请求数据中包含无效的字段,仍然会抛出错误。
  • 除了 passthrough() 之外,Zod 还提供了 strict() 和 strip() 方法,分别用于禁止未定义字段和删除未定义字段。可以根据实际需求选择合适的方法。

总结:

passthrough() 方法是 Zod 中一个非常有用的功能,可以帮助我们灵活地处理请求数据,只验证部分字段,同时保留其他未定义字段。通过合理使用 passthrough() 方法,可以简化代码,提高开发效率。

相关专题

更多
C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

2

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

21

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

6

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

28

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

2

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

8

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

3

2026.01.15

php图片上传教程汇总
php图片上传教程汇总

本专题整合了php图片上传相关教程,阅读专题下面的文章了解更多详细教程。

2

2026.01.15

phpstorm相关教程大全
phpstorm相关教程大全

本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.9万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号