What does `app.use(bodyParser.json())` do?

后端 未结 3 674
渐次进展
渐次进展 2020-12-22 20:21

For:

bodyParser.urlencoded({extended: ...})

my research shows me that if extended: true, then you can parse nested objects, or

相关标签:
3条回答
  • 2020-12-22 20:47

    Okay, contrary to what I previously thought, further research shows that extended: true and app.use(bodyParser.json()) can be used together. So it is not only extended: false that uses it. The statement app.use(bodyParser.json()) is to be used independently, whether you set extended as true or false.

    • app.use(bodyParser.json()) basically tells the system that you want json to be used.

    • bodyParser.urlencoded({extended: ...}) basically tells the system whether you want to use a simple algorithm for shallow parsing (i.e. false) or complex algorithm for deep parsing that can deal with nested objects (i.e. true).

    Have a look at the docs (i.e. https://expressjs.com/en/guide/migrating-4.html) for the example.

    0 讨论(0)
  • 2020-12-22 20:48

    URL encoding and JSON encoding both allow to convert a (nested) object to string, but the format is different. An URL encoded string is in general not a valid JSON string.

    One application may use one encoding method, and another the other. As long as they don't mix the two, it will work.

    0 讨论(0)
  • 2020-12-22 20:48

    bodyParser.json returns middleware that only parses json. This parser accepts any Unicode encoding of the body and supports automatic inflation of gzip and deflate encodings.

    A new body object containing the parsed data is populated on the request object after the middleware (i.e. req.body).

    0 讨论(0)
提交回复
热议问题