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
我看到你试图在上下文之外定义 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);
}
};