Body-parser Middleware in Node.js
Last Updated :
07 Jan, 2025
Body-parser is the Node.js body-parsing middleware. It is responsible for parsing the incoming request bodies in a middleware before you handle it. It's commonly used in web applications built with Express.js to handle form submissions, JSON payloads, and other types of request bodies.
What is Body-parser?
body-parser is essential for handling incoming data in a variety of formats, such as JSON, URL-encoded form data, and raw or text data. It transforms this data into a readable format under req.body for easier processing in your application.
Features
- Handles different types of request payloads, including JSON, URL-encoded, raw, and text data.
- Simplifies the process of accessing request data, making it readily available under req.body.
- Works seamlessly with Express.js and other Node.js frameworks.
Body-parser is middleware used to parse incoming request bodies in a middleware before handlers.
Steps to Setup a body-parser Module
Step 1: First init the node app using the below command.
npm init -y
Step 2: You can visit the link to Install the body-parser module. You can install this package by using this command.
npm install body-parser express ejs
Step 2: After installing body-parser you can check your body-parser version in the command prompt using the command.
npm version body-parser
Project Structure:
Project Structure
The updated dependencies in your package.json file will look like this:
"dependencies":{
"body-parser": "^1.20.2",
"express": "^4.18.2",
"ejs": "^3.1.9"
}
Example: This code uses body-parser middleware in an Express.js application to parse URL-encoded and JSON request bodies, allowing access to form data via req.body.
HTML
<!DOCTYPE html>
<html>
<head>
<title>Body-Parser Module Demo</title>
</head>
<body>
<h1>Demo Form</h1>
<form action="saveData" method="POST">
<pre>
Enter your Email : <input type="text"
name="email"> <br>
<input type="submit" value="Submit Form">
</pre>
</form>
</body>
</html>
JavaScript
// Filename - index.js
const bodyparser = require('body-parser')
const express = require("express")
const path = require('path')
const app = express()
let PORT = process.env.port || 3000
// View Engine Setup
app.set("views", path.join(__dirname))
app.set("view engine", "ejs")
// Body-parser middleware
app.use(bodyparser.urlencoded({ extended: true }))
app.use(bodyparser.json())
app.get("/", function (req, res) {
res.render("SampleForm")
});
app.post('/saveData', (req, res) => {
console.log("Using Body-parser: ", req.body.email)
})
app.listen(PORT, function (error) {
if (error) throw error
console.log("Server created Successfully on PORT", PORT)
})
Run the index.js file using the below command:
node index.js
Now Open the browser and type the below URL and you will see the Demo Form as shown below:
http://localhost:3000/

Now submit the form and then you will see the following output:

But if we do not use this body-parser middle, then while parsing, an error will occur as shown below:

So this is how you can use the body-parser module for parsing incoming request bodies in middleware before you handle it.
Summary
body-parser is a powerful middleware in Node.js used for parsing incoming request bodies. Whether you're working with JSON, form data, or other content types, body-parser simplifies the process of accessing and handling this data. It is often used with express and is a core part of express which makes it easier to implement.