Express 4.0中的“扩展”是什么意思?

我在我的应用程序中使用express和body-parser。

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

但是,expression式4.0中的“扩展”是什么意思?

我find了这个

 extended - parse extended syntax with the qs module. 

但是,我仍然不能低估这意味着什么。

如果extended名为false ,则不能发布“嵌套对象”

 person[name] = 'cw' // Nested Object = { person: { name: cw } } 

如果extendedtrue ,你可以做任何你喜欢的方式。

来自Body-Parser文档:

在中间件之后的请求对象(即req.body)上填充包含parsing的数据的新的主体对象。 该对象将包含键值对,其中值可以是string或数组(当扩展为false时)或任何types(当扩展为true时)。

扩展选项允许select在查询string库(如果为false)或qs库(如果为true)时parsingURL编码的数据。 “扩展”语法允许将丰富的对象和数组编码为URL编码的格式,从而允许使用URL编码的类似JSON的体验。 有关更多信息,请参阅qs库。

基本上扩展允许您parsing完整的对象。

身体分析器:Url编码

如果bodyParser.urlencoded({ extended: true }) ,则使用qs库分析URL编码的数据。 “扩展”语法允许将丰富的对象和数组编码为URL编码的格式,从而允许使用URL编码的类似JSON的体验。

qs允许你在你的查询string中创build嵌套的对象 ,用方括号[]括住子键的名字。

例如,string'person[name]=bobby''person[age]=3'将被转换为:

 person: { name: 'bobby', age: 3 } 

如果bodyParser.urlencoded({ extended: false }) ,则用查询string库分析URL编码的数据。

例如,string'person[name]=bobby''person[age]=3'将被转换为:

 'name=bobby&age=3'