使用Prisma+ExpressJS查询MySQL返回空JSON问题求助
问题原因与解决方法
核心问题是你没有给异步查询添加await关键字:prisma.user.findMany()是异步方法,直接赋值给users得到的是一个Promise对象,而非实际查询结果。Express会将Promise对象序列化为空JSON返回,这就是你看到空结果的原因。
修正后的代码
// route "/users" app.get('/users/getAll', async (req,res)=>{ try { const users = await prisma.user.findMany(); // 添加await等待查询完成 res.send(users); } catch (error) { res.status(500).send({ error: error.message }); // 新增错误捕获,便于排查问题 } });
额外排查点
- 直接用MySQL客户端执行
SELECT * FROM user;,确认数据库中确实存在用户数据。 - 确保已运行
prisma generate生成客户端,且代码中正确初始化了Prisma实例(如const prisma = new PrismaClient();)。 - 检查
.env文件中的DATABASE_URL,确认连接的是存有数据的目标数据库。
内容的提问来源于stack exchange,提问作者Lebonsavane
相关产品推荐
相关产品推荐

