Comments (8)
Yes. The reason is historical that req.body
is always set to {}
unless there was actually a matching body. The main reason is stacking the parsers. In the next major, req.body
really shouldn't even get set unless there was a body. At least setting it to {}
allows you to differentiate between no body and a body of an empty string.
from body-parser.
I'd think that in the case of bodyParser.text()
you'd likely prefer the empty string to an object. The expectation is that it's text, not an object. If it gets automatically assigned to {}
then !req.body
will never pass, and the developer will have no idea why.
from body-parser.
Yeah, definitely should be an empty string in that case!
I'd expect undef if there was no body.
from body-parser.
Right. I'm not disagreeing, but I was just saying the reason it's set to {}
when the body was not a text body was because of backwards-compatibility reasons. In the next major, req.body
will just be undefined
if there was no parsed body on the request.
from body-parser.
Anyway, if you post a body that is plain text and the body is empty (so Content-Length: 0
), then req.body
is set to an empty string (''
) by this module. It's only set to {}
if the request didn't actually have a text body at all.
from body-parser.
The test https://github.com/expressjs/body-parser/blob/1.7.0/test/text.js#L33-L42 shows that the empty body comes through as req.body === ''
if you are in doubt.
from body-parser.
Verified the behavior is a bug within type-is
and how it is interpreting the HTTP spec.
from body-parser.
thanks for the help!
from body-parser.
Related Issues (20)
- bodyParser is deprecated HOT 24
- 'bodyParser' function is deprecated in index.d.ts file HOT 1
- HTTP:413 Request Entity Too Large HOT 5
- Conform with express-validator on parameter representation
- bodyParser is deprecated, error HOT 1
- bodyparser.json() shown as deprecated? (question) HOT 7
- pass options to qs thru urlencoded? HOT 4
- Cannot catch SyntaxError when user provides invalid JSON in body and content-type: application/json HOT 3
- Support for content-encoding: deflate raw HOT 7
- req.body could not be accessed when send as form data, but works fine with JSON HOT 3
- Pass custom parameters to `qs` HOT 3
- Update iconv-lite to latest 0.6.3 HOT 7
- support for ndjson
- Regular Expression Denial of Service (ReDoS) in [email protected] HOT 3
- Update `debug` dependency (memory leak leading to vulnerability) HOT 1
- api calls made with invalid json HOT 5
- Add support for removing body parser limit HOT 8
- BadRequestError: request size did not match content length HOT 7
- How to handle content-type mismatch? HOT 1
- CVE-2017-20165 - debug HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from body-parser.