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
相关产品推荐
相关产品推荐

