You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js /api目录导入外部zod schema报TypeError问题求助

Next.js API路由导入Zod Schema时报错:Cannot read properties of undefined (reading 'safeParse')

我在Next.js的pages/api目录下尝试从单独文件导入Zod Schema对象,客户端任意.tsx文件里导入schema都完全正常,但在API路由文件里用相同的导入语句时,却抛出了如下错误:

TypeError: Cannot read properties of undefined (reading 'safeParse')


相关代码文件

./types/message.ts

import { z } from 'zod';

export default interface Message {
  name: string;
  email: string;
  subject: string;
  message: string;
}

export const schema = z.object({
  name: z.string(),
  email: z.string().email(),
  subject: z.string(),
  message: z.string(),
});

/pages/form.tsx(客户端可正常使用)

...
import Message, { schema } from '@/types/message';
const { register, handleSubmit} = useForm({
    resolver: zodResolver(schema),
  });
...

./pages/api/sendMessage.ts(报错的API路由)

...
import Message, { schema } from '@/types/message';

...
// 执行此行时抛出TypeError错误
const response = schema.safeParse(req.body);
...

我试过用require方式导入schema,但没有解决问题。把schema的定义直接复制到sendMessage.ts文件里可以消除错误,但为了避免代码重复,我更希望把schema保留在单独文件中实现复用。

内容的提问来源于stack exchange,提问作者TSTobias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 01:50:26