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

如何在Next.js 13 App Router的route.ts文件中读取请求体与查询参数?

Next.js 13 App Router 构建支持GET/POST的API路由

在Next.js 13的App Router模式下,你可以创建同时处理GET和POST请求的API端点,下面是完整实现示例,包含查询参数读取和请求体解析的逻辑:

处理GET请求(读取查询参数)

通过Request对象的URL提取查询参数,当参数不存在时返回默认值:

import { NextResponse } from "next/server";

export async function GET(req: Request) {
  const { searchParams } = new URL(req.url);
  // 获取查询参数,无参数时使用默认值
  const queryParam = searchParams.get("param") || "default";
  // 返回JSON响应
  return NextResponse.json({ message: `Query param value is ${queryParam}` });
}

处理POST请求(解析请求体)

对于POST请求,通过req.json()解析请求体内容,示例如下:

export async function POST(req: Request) {
  try {
    // 解析请求体
    const requestBody = await req.json();
    // 处理业务逻辑,这里直接返回请求体内容
    return NextResponse.json({ receivedData: requestBody }, { status: 200 });
  } catch (error) {
    // 处理解析错误
    return NextResponse.json({ error: "Invalid request body" }, { status: 400 });
  }
}

将上述代码放在app/api/[route-name]/route.ts文件中(替换[route-name]为你的路由名称),即可创建同时支持GET和POST的API端点。这类实现可以帮助你在Next.js应用中构建健壮且灵活的API服务,而官方文档中并未针对这类完整场景给出直接示例。

内容的提问来源于stack exchange,提问作者Pooja Mishra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 10:09:52