@prisma/client 未初始化

问题描述 投票:0回答:1

X [错误] 服务核心:用户:ttm:未捕获错误:@prisma/client 尚未初始化。请运行“prismagenerate”并尝试再次导入。

at null.<anonymous> (index.js:1364:15) in PrismaClient
at null.<anonymous> (index.js:3969:14)

一次又一次地收到此错误,我已尝试了以下所有命令,但仍然收到此错误

cmd使用: 1:npm安装@prisma/client 2: npm install prisma --save-dev 3:npx prisma 生成 4:npm运行开发

任何人都可以帮我吗,我已将此代码上传到我的 github 上,请任何人都可以解决并告诉我的错误。

github链接:https://github.com/TanmayChaurasia24/TTM/tree/main/backend

typescript serverless cloudflare cloudflare-workers
1个回答
0
投票

我看到你试图在上下文之外定义 Prisma,你的方法没有任何问题,尽管你有理由不应该这样做。

不鼓励在 Hono(或任何框架)的上下文之外定义 Prisma,因为它可能导致连接池问题,尤其是在无服务器环境中。 如果 Prisma 是全局定义的,它可能会保留陈旧的连接,从而导致查询失败或连接池耗尽。通过在请求上下文中定义它,您可以确保每个请求都有新的连接。 在传统的长时间运行的服务器中,全局定义 Prisma 是可行的,但对于无服务器设置来说并不理想。

找到这篇文章可以帮助您了解更多:通过上下文将 prisma 对象传递给解析器还是直接使用它更好?

这里还有一个关于如何使用 Prisma 的片段:

export const getAllUsers = async (c: Context) => {
  const prisma = new PrismaClient({
    datasourceUrl: c.env.DATABASE_URL,
  }).$extends(withAccelerate());

  try {
    const res = await prisma.user.findMany();
    return c.json({
      users: res.map((user) => ({
        id: user.id,
        username: user.username,
        email: user.email,
      })),
    });
  } catch (error) {
    return c.body(`Internal server error: ${error}`, 500);
  }
};
© www.soinside.com 2019 - 2024. All rights reserved.