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

在JavaScript/TypeScript代码中集成Prisma ORM遇错误求助

问题与解决方案

背景

正在将纯JavaScript项目迁移至TypeScript并集成Prisma ORM,TypeScript文件运行正常,但JavaScript文件执行时报错。

配置与代码

tsconfig.json 配置

{    
  "compilerOptions": {      
    "target": "es6",       
    "module": "commonjs",       
    "sourceMap": true,       
    "outDir": "/src",       
    "strict": true,       
    "skipLibCheck": true,
    "declaration": true,
    "moduleResolution": "node",       
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true ,
    "experimentalDecorators": true,        
    "allowJs": true    
  },    
  "include": ["src/**/*"],
  "exclude": ["node_modules", ".vscode"]  
}

正常运行的TypeScript文件(type_dummy.ts)

import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

main()

async function main() {
     const allUsers = await prisma.client.findMany()
      console.log(allUsers)
}

报错的JavaScript文件(java_dummy.js)

const { PrismaClient } = require('@prisma/client')


uploadsripts.post("/test_prisma",(req,res)=>{
    
main().catch(e => {
    console.log(e);
})

    async function main() {
        const allUsers = await PrismaClient.client.findMany()
         console.log(allUsers)
   }
    

})

错误信息

0|server  | TypeError: Cannot destructure property 'name' of 'undefined' as it is undefined.
0|server  |     at normalizeSignal (/Users/abhishek/Documents/node/ec_node/node_modules/@prisma/client/runtime/index.js:3828:7)
0|server  |     at Array.map (<anonymous>)
0|server  |     at getSignals (/Users/abhishek/Documents/node/ec_node/node_modules/@prisma/client/runtime/index.js:3823:62)
0|server  |     at getSignalsByName (/Users/abhishek/Documents/node/ec_node/node_modules/@prisma/client/runtime/index.js:3855:47)
0|server  |     at ../../node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/main.js (/Users/abhishek/Documents/node/ec_node/node_modules/@prisma/client/runtime/index.js:3864:25)
0|server  |     at __require (/Users/abhishek/Documents/node/ec_node/node_modules/@prisma/client/runtime/index.js:11:51)
0|server  |     at ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/error.js (/Users/abhishek/Documents/node/ec_node/node_modules/@prisma/client/runtime/index.js:3906:29)
0|server  |     at __require (/Users/abhishek/Documents/node/ec_node/node_modules/@prisma/client/runtime/index.js:11:51)
0|server  |     at ../../node_modules/.pnpm/execa@5.1.1/node_modules/execa/index.js (/Users/abhishek/Documents/node/ec_node/node_modules/@prisma/client/runtime/index.js:4635:21)
0|server  |     at __require (/Users/abhishek/Documents/node/ec_node/node_modules/@prisma/client/runtime/index.js:11:51)
0|server  |     at Object.<anonymous> (/Users/abhishek/Documents/node/ec_node/node_modules/@prisma/client/runtime/index.js:20119:28)
0|server  |     at Module._compile (node:internal/modules/cjs/loader:1126:14)
0|server  |     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
0|server  |     at Module.load (node:internal/modules/cjs/loader:1004:32)
0|server  |     at Function.Module._load (node:internal/modules/cjs/loader:839:12)
0|server  |     at Module.require (node:internal/modules/cjs/loader:1028:19)

问题原因

JavaScript代码中直接通过PrismaClient.client.findMany()调用模型方法,未先实例化PrismaClient。Prisma要求必须创建客户端实例后才能访问对应的模型操作。

修复后的JavaScript代码

const { PrismaClient } = require('@prisma/client')

// 实例化PrismaClient
const prisma = new PrismaClient()

uploadsripts.post("/test_prisma", async (req, res) => {
    try {
        const allUsers = await prisma.client.findMany()
        console.log(allUsers)
        // 向客户端返回查询结果
        res.status(200).json(allUsers)
    } catch (e) {
        console.error(e);
        // 返回错误信息
        res.status(500).json({ error: e.message })
    }
})

额外注意

  • 确保路由回调处理异步逻辑,使用async/await并正确捕获异常
  • 及时给客户端返回响应,避免请求超时
  • PrismaClient实例建议全局创建,避免重复实例化

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:45:47