Handling Forms, JSON payloads & Queries
To handle incoming form submissions or JSON data, Express needs parser middlewares configuration. Express provides built-in parsers since version 4.16.0.
1 Body Parsing Middleware Configuration
JavaScript — payload_parsers.js
const express = require("express");
const app = express();
// Parses incoming JSON request payloads
app.use(express.json());
// Parses incoming url-encoded forms submissions
app.use(express.urlencoded({ extended: true }));
app.post("/submit-form", (req, res) => {
// Access form variables sent via POST
const username = req.body.username;
const email = req.body.email;
res.send(`Form parsed: ${username} - ${email}`);
});
2 Parsing Query String Parameters
Express naturally parses query parameter strings into the req.query object, making paging and search queries straightforward:
JavaScript — Parsing Queries
// GET /api/search?q=express&limit=5
app.get("/api/search", (req, res) => {
const searchVal = req.query.q;
const limitVal = parseInt(req.query.limit) || 10;
res.json({ search: searchVal, limit: limitVal });
});
3 Code Challenge
Challenge: Write a route handler that receives a POST request containing JSON data with fields
id and status. Send back a JSON response confirming status change with status code 202.