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

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

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

读取查询参数(Query Params)

不管是GET还是其他请求类型,都可以通过request.nextUrl.searchParams直接获取查询参数:

  • 单个参数用get()方法,多个同名参数用getAll()方法。

示例代码:

export async function GET(request: Request) {
  // 获取单个查询参数
  const userId = request.nextUrl.searchParams.get('userId');
  // 获取多个同名参数(比如 ?tags=react&tags=nextjs)
  const tags = request.nextUrl.searchParams.getAll('tags');
  
  return new Response(`User ID: ${userId}, Tags: ${tags.join(', ')}`);
}

读取请求体(Request Body)

根据请求的Content-Type,选择对应的异步方法解析:

  • JSON格式用request.json()
  • 纯文本用request.text()
  • 表单数据用request.formData()

JSON请求体示例:

export async function POST(request: Request) {
  // 解析JSON格式的请求体
  const payload = await request.json();
  const { title, content } = payload;
  
  return new Response(`Received post: ${title} - ${content}`);
}

表单数据示例:

export async function POST(request: Request) {
  // 解析表单数据
  const formData = await request.formData();
  const username = formData.get('username');
  const avatar = formData.get('avatar') as File;
  
  return new Response(`Username: ${username}, Avatar size: ${avatar.size} bytes`);
}

内容的提问来源于stack exchange,提问作者Vikram Ray

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:49:52