如何从Prisma查询返回的PrismaPromise中提取数据并返回自定义404?
解决Prisma查询结果判断为空并返回自定义404的问题
Prisma的
findUnique方法返回的是PrismaPromise,本质是Promise对象,你必须等待它解析完成才能拿到实际的查询数据——直接打印Promise对象只会显示它的方法和标识,看不到真实数据。用
async/await语法(推荐)或者.then()链式调用,就能获取到实际数据并判断是否为空:
方法一:使用async/await(更简洁易读)
// 确保你的方法是async函数 async getClient(clientWhereUniqueInput) { // 等待Promise解析,拿到实际的client数据 const client = await this.prisma.client.findUnique({ where: clientWhereUniqueInput, }); // 现在可以正常打印查看数据 console.log(client); // 判断数据是否为空(findUnique找不到匹配项时返回null) if (!client) { // 返回自定义404响应,这里根据你的框架调整,比如Express示例: return res.status(404).json({ message: '客户端不存在' }); } // 数据存在则返回结果 return res.json(client); }
方法二:使用.then()链式调用
this.prisma.client.findUnique({ where: clientWhereUniqueInput, }) .then(client => { console.log(client); if (!client) { return res.status(404).json({ message: '客户端不存在' }); } return res.json(client); }) .catch(error => { // 处理查询过程中的错误 return res.status(500).json({ message: '查询失败', error }); });
内容的提问来源于stack exchange,提问作者HomerPlata
相关产品推荐
相关产品推荐

