express.urlencoded()

Built-in middleware that parses URL-encoded form bodies into req.body.

Since Express 4.16 Spec ↗

Syntax

express.urlencoded([options])

Parameters

NameTypeRequiredDescription
options object No `extended` (use the qs library for nested objects), `limit`, `parameterLimit`, `type`.

Returns

function — A middleware function.

Examples

app.use(express.urlencoded({ extended: true }));

app.post('/login', (req, res) => {
  res.send(`hello ${req.body.username}`);
});
Output
$ curl -X POST -d 'username=ada' localhost:3000/login
hello ada
app.use(express.urlencoded({ extended: false, limit: '10kb' }));

app.post('/x', (req, res) => res.json(req.body));
Output
$ curl -X POST -d 'a=1&b=2' localhost:3000/x
{"a":"1","b":"2"}

Notes

Parses `application/x-www-form-urlencoded` HTML form submissions. `extended: true` allows nested objects/arrays (`a[b]=1`); `false` is flat key/value only. Set a `limit`. All parsed values are strings.

See also