What does 'extended' mean in express 4.0?

后端 未结 3 2037
有刺的猬
有刺的猬 2020-11-28 02:57

I\'m using express and also body-parser in my app.

app.use(bodyParser.urlencoded({ extended: false }));

But, What does \'extended\' mean in

3条回答
  •  醉话见心
    2020-11-28 03:20

    When extended property is set to true, the URL-encoded data will be parsed with the qs library.

    On the contrary,

    when extended property is set to false, the URL-encoded data will instead be parsed with the querystring library.


    The differences between parsing with `qs library` vs `querystring library`

    • qs library allows you to create a nested object from your query string.

      var qs = require("qs")
      var result = qs.parse("person[name]=bobby&person[age]=3")
      console.log(result) // { person: { name: 'bobby', age: '3' } }
      


    • query-string library does not support creating a nested object from your query string.

      var queryString = require("query-string")
      var result = queryString.parse("person[name]=bobby&person[age]=3")
      console.log(result) // { 'person[age]': '3', 'person[name]': 'bobby' }
      


    • qs library will not filter out '?' from the query string.

      var qs = require("qs")
      var result = qs.parse("?a=b")
      console.log(result) // { '?a': 'b' }
      


    • query-string library will filter out '?' from the query string.

      var queryString = require("query-string")
      var result = queryString.parse("?a=b")
      console.log(result) // { a: 'b' }
      

    app.use(bodyParser.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded
    


    For more information, you may refer to Leonid Beschastny's answer, and npm compare qs vs query-string.

提交回复
热议问题