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

如何从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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 23:59:54