如何在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
相关产品推荐
相关产品推荐

