【问题标题】:React: Unhandled error 500 when using API to get data from PrismaReact:使用 API 从 Prisma 获取数据时出现未处理的错误 500
【发布时间】: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。此外,正如其他人所提到的,拥有堆栈跟踪将有助于识别问题。

标签: reactjs database api next.js prisma


【解决方案1】:

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

【讨论】:

  • 我需要补充什么?
  • 如果可能的话,你能把你的完整项目的链接放上去吗?
  • 我想,但我与其他人合作,所以会很困难 :s 你有什么需要我可以发布的吗?非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
  • 2021-07-05
  • 2020-05-15
相关资源
最近更新 更多