React:使用 API 从 Prisma 获取数据时出现未处理的错误 500

Posted

技术标签:

【中文标题】React:使用 API 从 Prisma 获取数据时出现未处理的错误 500【英文标题】:React: Unhandled error 500 when using API to get data from Prisma 【发布时间】:2021-12-31 16:10:42 【问题描述】:

我正在尝试使用 API 从我的 Prisma 数据库中获取一些数据,但出现错误。 这是我的 API:


export default async function handler(req, res) 
  switch (req.method) 
    case 'DELETE':
      const  id  = req.query
      const issue2 = await db.deleteUnique(id)
      res.status(204).end()
      break
      
    case 'GET':
      const issue = await db.findUnique(id)
      res.status(200).json( success: true, data: issue )
      break
    default:
      res.status(405).end()
      break
  

这是我的 index.js 文件,它向我的 API 发送调用:

import axios from 'axios'
import  useRouter  from 'next/router'

  const Issue = () => 
    const router = useRouter();
    const  id  = router.query
  
    const getIssue = async () => 
      // GET-request til /api/issues/[id].js
      const response = await axios.get(`/api/issues/$id`)
    
    
  
    return (
      <div>
        <h1>Issue id</h1>
        <button onClick=getIssue>Hent Id</button>
      </div>
    )
  

  export default Issue

单击按钮获取ID后,我得到的错误是“未处理的运行时错误”,我已经尝试了我能想到的一切。有人可以帮忙吗?

createError
node_modules/axios/lib/core/createError.js (16:0)

settle
node_modules/axios/lib/core/settle.js (17:0)

XMLHttpRequest.onloadend
node_modules/axios/lib/adapters/xhr.js (66:0)

【问题讨论】:

您是否获得有关运行时错误的更多信息?行号、调用堆栈等? 是的,我可以更新问题@Viktor 顺便说一下,您的 Prisma 查询也可能不正确。 Prisma 中没有deleteUnique 操作。您还必须提及型号名称。以下是 findUnique 查询 可能 的样子:await db.issue.findUnique( where: id )。我建议稍微浏览一下 Prisma docs。此外,正如其他人所提到的,拥有堆栈跟踪将有助于识别问题。 【参考方案1】:

应该有一个 axios get 请求的 try catch 块 并且get请求和switch块之间没有联系 (我的意思是你没有将 response.json() 发送到交换机)

【讨论】:

我需要补充什么? 如果可能的话,你能把你的完整项目的链接放上去吗? 我想,但我与其他人合作,所以会很困难 :s 你有什么需要我可以发布的吗?非常感谢您的帮助

以上是关于React:使用 API 从 Prisma 获取数据时出现未处理的错误 500的主要内容,如果未能解决你的问题,请参考以下文章

带条件的 Prisma 查询

为啥我在使用 Prisma(React 应用程序)在 Mongodb 中显示和删除时遇到问题?

从 Prisma2 中的辅助表中获取数据

从 Prisma 中的多对多表中获取元信息

从 Svelte Kit 中的加载函数调用 prisma 客户端

React Context : 从 API 获取数据并在 React 组件中发生某些事件时调用 API