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

Next.js App Router API Route返回500错误求助

问题原因

你的代码在Next.js App Router的API路由中直接返回了普通JavaScript对象,但App Router要求必须使用NextResponse类来构建响应。这种不符合规范的返回格式导致服务器无法正确解析响应,最终返回500错误。另外你导入的NextApiRequest/NextApiResponse是Pages Router专用的API,在App Router场景下完全无用。

修正后的代码
import { PrismaClient } from "@prisma/client"
import { NextResponse } from "next/server";

// 全局缓存Prisma实例,避免开发环境热重载重复创建实例
const prisma = global.prisma || new PrismaClient();
if (process.env.NODE_ENV !== 'production') global.prisma = prisma;

export async function GET() {
    try {
        const machines = await prisma.machines.findMany();
        console.log(machines, "machines")
        // 使用NextResponse.json返回标准格式的响应
        return NextResponse.json(machines, { status: 200 });
    } catch (error) {
        console.error(error)
        return NextResponse.json(
            { error: "获取数据时发生错误。" },
            { status: 500 }
        );
    }
}
关键修改说明
  • 移除了无用的NextApiRequest/NextApiResponse导入
  • 用NextResponse.json()替代直接返回对象,这是App Router API路由的标准响应方式
  • 添加Prisma实例的全局缓存,解决开发环境热重载时重复创建实例的警告问题

内容的提问来源于stack exchange,提问作者Andre Pujol

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:57:07