0
0
NodejsHow-ToBeginner · 3 min read

How to Parse Request Body in Node.js: Simple Guide

In Node.js, you parse the request body by using middleware like express.json() for JSON data or express.urlencoded() for form data. These middlewares read the incoming data and make it available on req.body inside your route handlers.
📐

Syntax

To parse JSON or URL-encoded form data in Node.js with Express, you use middleware functions that process the incoming request body before your route handlers.

  • express.json() parses JSON payloads.
  • express.urlencoded({ extended: true }) parses URL-encoded form data.
  • After parsing, the data is accessible via req.body.
javascript
import express from 'express';
const app = express();

// Middleware to parse JSON bodies
app.use(express.json());

// Middleware to parse URL-encoded bodies
app.use(express.urlencoded({ extended: true }));

app.post('/data', (req, res) => {
  // Access parsed data here
  console.log(req.body);
  res.send('Data received');
});
💻

Example

This example shows a simple Express server that parses JSON request bodies and responds with the received data.

javascript
import express from 'express';
const app = express();
const port = 3000;

// Parse JSON bodies
app.use(express.json());

app.post('/submit', (req, res) => {
  // req.body contains the parsed JSON data
  res.json({ received: req.body });
});

app.listen(port, () => {
  console.log(`Server running on http://localhost:${port}`);
});
Output
Server running on http://localhost:3000
⚠️

Common Pitfalls

  • Not using any body-parsing middleware causes req.body to be undefined.
  • Using express.urlencoded() without extended: true limits parsing capabilities.
  • Parsing large bodies without limits can cause performance issues; set size limits in middleware options.
  • Trying to parse JSON without express.json() will fail silently.
javascript
import express from 'express';
const app = express();

// Wrong: No middleware, req.body will be undefined
app.post('/wrong', (req, res) => {
  console.log(req.body); // undefined
  res.send('No body parsed');
});

// Right: Use middleware to parse JSON
app.use(express.json());
app.post('/right', (req, res) => {
  console.log(req.body); // Parsed JSON object
  res.send('Body parsed');
});
📊

Quick Reference

Summary of middleware to parse request bodies in Node.js with Express:

MiddlewarePurposeUsage Example
express.json()Parses JSON request bodiesapp.use(express.json())
express.urlencoded({ extended: true })Parses URL-encoded form dataapp.use(express.urlencoded({ extended: true }))
Limit optionLimits size of parsed bodyapp.use(express.json({ limit: '1mb' }))

Key Takeaways

Always use body-parsing middleware like express.json() to access request body data.
Use express.urlencoded({ extended: true }) to parse form submissions.
Without middleware, req.body will be undefined.
Set size limits in middleware to protect your server from large payloads.
Access parsed data via req.body inside your route handlers.