-
-
Notifications
You must be signed in to change notification settings - Fork 750
Open
Description
Description
For an empty http request body the v1 json parser would provide a {} request body. V2 provides an undefined body
Expectations
This to be described as it can cause all kinds of issues and errors. If you have done that and I missed it, sorry.
If you expect for example a username entry:
if (req.body.username){
// do something
}It has to change to something like this
if (req.body?.username){
// do something
}I added a workaround to not have to change lot's of code
const bodyParser = require('body-parser'),
express = require('express'),
json_reviver = require('../../lib/json_reviver')
function jsonWithDefault(options) {
const jsonParser = bodyParser.json(options);
return (req, res, next) => {
jsonParser(req, res, (err) => {
if (err) return next(err);
if (req.body === undefined) {
req.body = {}; // restore v1 behavior
}
next();
});
};
}
module.exports = {
jsonParser: jsonWithDefault({ limit: '5mb', reviver: json_reviver }),
urlEncoded: bodyParser.urlencoded({ extended: true, limit: '5mb' }),
raw: express.raw({
inflate: true,
limit: '50mb',
type: () => true, // this matches all content types
})
};mrdan, tdtm and nguyentoanit
Metadata
Metadata
Assignees
Labels
No labels