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 } }
如果extended
是true
,你可以做任何你喜欢的方式。
来自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'