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

Next.js API路由请求停滞及TypeError报错求助

解决Next.js API路由响应停滞及NextResponse.next()报错问题

问题原因

  • 第一个错误API resolved without sending a response:你的API路由函数没有返回任何HTTP响应,Next.js无法向客户端返回结果,导致请求挂起。
  • 第二个错误TypeError: this._headers.getAll is not a function:NextResponse.next()是Next.js中间件的专用方法,用于传递请求到下一个处理环节,不能在API路由中用来返回响应。

修正后的代码

import { PrismaClient } from '@prisma/client'
import { NextResponse } from "next/server";

// 避免开发环境重复创建PrismaClient实例
const prisma = global.prisma || new PrismaClient()
if (process.env.NODE_ENV !== 'production') global.prisma = prisma

export async function GET(request: Request) {
  try {
    const users = await prisma.user.findMany();
    console.log(users);
    // 返回包含用户数据的JSON响应
    return NextResponse.json(users);
  } catch (error) {
    // 处理错误,返回500状态码和错误信息
    return NextResponse.json({ error: 'Failed to fetch users' }, { status: 500 });
  }
}

关键说明

  • API路由必须返回一个NextResponse实例(比如NextResponse.json()、NextResponse.text()等)来结束请求流程。
  • 开发环境中重复热重载会创建多个PrismaClient实例,通过global.prisma复用实例可避免数据库连接过多的问题。
  • 加入错误捕获逻辑,能在数据库查询失败时返回明确的错误响应,方便调试。

内容的提问来源于stack exchange,提问作者عثمان غني

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:54:56