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

Next.js中使用Prisma插入数据时出现Cannot read properties of undefined错误

解决 "TypeError: Cannot read properties of undefined (reading 'actualite')" 错误

核心问题:Prisma Client 实例未正确初始化

你当前的导入方式错误,@prisma/client 导出的是 PrismaClient 类,而非直接可用的 prisma 实例。此外代码中还存在字段不匹配的问题,以下是完整修复方案:

1. 修正 Prisma Client 导入与实例化

修改 api/actualites.js 代码,正确创建 PrismaClient 实例,并匹配 schema 中的字段:

// api/actualites.js
import { PrismaClient } from '@prisma/client';

// 初始化 Prisma Client 实例
const prisma = new PrismaClient();

export default async function handler(req, res) {
  if (req.method === 'POST') {
    // 匹配 schema 中的字段:titre、contenu、image
    const { titre, contenu, image } = req.body;

    try {
      const createdActualite = await prisma.actualite.create({
        data: {
          titre,
          contenu,
          image, // schema 中 image 为必填字段,必须传入
        },
      });

      res.status(200).json(createdActualite);
    } catch (error) {
      console.error(error);
      res.status(500).json({ error: '发布新闻时发生错误。' });
    } finally {
      // 操作完成后关闭数据库连接
      await prisma.$disconnect();
    }
  } else {
    res.status(405).json({ error: '不允许的请求方法,请使用 POST。' });
  }
}

2. 同步 Schema 与数据库

确保数据库结构与 schema.prisma 一致,运行迁移命令:

npx prisma migrate dev --name init

如果是首次初始化,该命令会创建数据库并应用 schema;若已有迁移记录,直接运行 npx prisma migrate dev 即可。

3. 重新生成 Prisma Client

修改 schema 后必须重新生成客户端,保证代码与 schema 同步:

npx prisma generate

额外验证

开发环境中可通过 Prisma Studio 直观查看数据库内容,确认数据是否正确插入:

npx prisma studio

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 17:32:23