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

Prisma+Express报错:Cannot read properties of undefined (reading 'create')

解决Prisma usercontact.create 抛出"Cannot read properties of undefined"错误

这个错误的核心原因是代码中的prisma.usercontact对象不存在,大概率是Prisma Client未正确初始化、模型未同步生成到Client,或者导入路径错误导致的。以下是具体解决步骤:


1. 确认Prisma Client已正确初始化

首先你需要创建并导出Prisma Client实例,在项目中新建(或检查)一个Prisma配置文件,比如prisma/client.js:

// prisma/client.js
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();

module.exports = prisma;

然后在你的Express路由文件中正确导入这个实例:

const prisma = require('./prisma/client.js'); // 路径根据你的项目结构调整

如果使用ES模块,改用import语法即可。

2. 重新生成Prisma Client

每次修改schema.prisma后,必须执行命令更新Prisma Client,否则新添加的模型不会被生成到Client中:

npx prisma generate

执行完成后,检查node_modules/@prisma/client目录下是否包含usercontact相关的类型定义和方法。

3. 验证模型名称与Client命名匹配

Prisma Client会将PascalCase的模型名转换为小写开头的驼峰式(或全小写,取决于模型名结构)。你可以查看node_modules/@prisma/client/index.d.ts文件,搜索Usercontact对应的Client属性名,确保代码中调用的prisma.usercontact与生成的属性名完全一致。

4. 检查请求体解析中间件

确保你的Express应用已经添加了解析JSON请求体的中间件,否则req.body会是undefined,后续解构formData也会出错:

app.use(express.json());

修正后的完整路由代码

const express = require('express');
const prisma = require('./prisma/client.js');
const app = express();

// 解析JSON请求体
app.use(express.json());

app.post("/api/addUserContact", async (req, res) => { 
  console.log("trying in the addUserContactInfo ") 
  try {
    // req.body无需await,直接解构
    const { formData } = req.body;

    const { username, email, subject, message } = formData;
    console.log(formData);

    const newUserQuery = await prisma.usercontact.create({
      data: {
        username,
        email,
        subject,
        message,
      },
    });

    res.status(201).send("Created");
    console.log("User contact query has been successfully created ");

  } catch(error) {
    res.sendStatus(500);
    console.error("Error creating user", error);
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 01:04:54