How to Handle POST Request in Node.js: Simple Guide
To handle a
POST request in Node.js, use the Express framework and its app.post() method to define a route. Make sure to use express.json() middleware to parse incoming JSON data in the request body.Why This Happens
When you try to handle a POST request in Node.js without parsing the request body, the server cannot read the data sent by the client. This happens because Node.js does not parse the body automatically.
javascript
import express from 'express'; const app = express(); app.post('/submit', (req, res) => { // Trying to access req.body without parsing console.log(req.body); res.send('Received'); }); app.listen(3000, () => console.log('Server running on port 3000'));
Output
undefined
The Fix
Use express.json() middleware to parse JSON data in the request body before your route handlers. This middleware reads the incoming JSON and makes it available as req.body.
javascript
import express from 'express'; const app = express(); // Middleware to parse JSON body app.use(express.json()); app.post('/submit', (req, res) => { console.log(req.body); // Now this will show the parsed data res.send('Data received'); }); app.listen(3000, () => console.log('Server running on port 3000'));
Output
Server running on port 3000
// When POST /submit with JSON {"name":"Alice"}
// Console logs: { name: 'Alice' }
// Response: Data received
Prevention
Always include body-parsing middleware like express.json() when handling POST requests with JSON data. Use tools like Postman or curl to test your endpoints. Follow these best practices:
- Use middleware early in your app setup.
- Validate incoming data to avoid errors.
- Use linting tools to catch missing middleware.
Related Errors
Other common errors include:
- Empty req.body: Happens if you forget
express.json()or send data in wrong format. - Unsupported Media Type: Occurs if client sends data not matching server's expected content type.
- SyntaxError: Happens if JSON sent is malformed.
Fix these by ensuring correct middleware, content-type headers, and valid JSON.
Key Takeaways
Use express.json() middleware to parse JSON bodies in POST requests.
Access POST data via req.body after parsing middleware is applied.
Test your POST endpoints with tools like Postman or curl.
Always validate and handle errors for incoming data.
Place middleware before route handlers to ensure parsing.