Introduction
Request parsing helps your app understand what the user sends. It turns raw data into usable information.
Jump into concepts and practice - no test required
Request parsing helps your app understand what the user sends. It turns raw data into usable information.
export async function POST(request) { const data = await request.json(); // use data here return new Response('Received'); }
request.json() to parse JSON body data.request.text() or request.formData() depending on the data type.export async function POST(request) { const jsonData = await request.json(); return new Response(`Hello, ${jsonData.name}`); }
id from the URL.export async function GET(request) { const url = new URL(request.url); const id = url.searchParams.get('id'); return new Response(`ID is ${id}`); }
export async function POST(request) { const formData = await request.formData(); const email = formData.get('email'); return new Response(`Email received: ${email}`); }
This route handler reads JSON data sent in a POST request. It extracts name and age from the data and sends back a friendly message.
export async function POST(request) { // Parse JSON data from request body const data = await request.json(); // Extract name and age const { name, age } = data; // Create a response message const message = `Hello, ${name}! You are ${age} years old.`; return new Response(message); }
Always check the content type before parsing to avoid errors.
Use await because parsing is asynchronous.
For GET requests, parse URL parameters instead of body data.
Request parsing turns raw user data into usable info.
Use request.json(), request.formData(), or URL parsing depending on data type.
Parsing is key to handling user input in Next.js route handlers.
request.json() method parses the request body as JSON.request.formData().const data = await request.formData(); to properly parse form data.export async function POST(request) {
const data = await request.json();
console.log(data.name);
return new Response('OK');
}request.json() method converts the JSON string into a JavaScript object.data.name will be "Alice".export async function POST(request) {
const data = request.json();
return new Response(JSON.stringify(data));
}request.json() method returns a promise and must be awaited.await, data is a promise, not the parsed object, causing incorrect response.await request.json() for 'application/json' and await request.formData() for 'multipart/form-data' or 'application/x-www-form-urlencoded'.