Node.js 什么是';扩展的';在express 4.0中是什么意思?
我正在我的应用程序中使用express和body解析器Node.js 什么是';扩展的';在express 4.0中是什么意思?,node.js,express,body-parser,Node.js,Express,Body Parser,我正在我的应用程序中使用express和body解析器 app.use(bodyParser.urlencoded({ extended: false })); 但是,在express 4.0中,“扩展”是什么意思 我找到了这个 extended - parse extended syntax with the qs module. 但是,我仍然无法理解它的含义。来自Body Parser文档: 包含解析数据的新主体对象填充在中间件之后的请求对象上(即req.body)。此对象将包含键值对,
app.use(bodyParser.urlencoded({ extended: false }));
但是,在express 4.0中,“扩展”是什么意思
我找到了这个
extended - parse extended syntax with the qs module.
但是,我仍然无法理解它的含义。来自Body Parser文档: 包含解析数据的新主体对象填充在中间件之后的请求对象上(即req.body)。此对象将包含键值对,其中值可以是字符串或数组(扩展为false时)或任何类型(扩展为true时) 及 扩展选项允许在使用querystring库解析URL编码数据(如果为false)或使用qs库解析URL编码数据(如果为true)之间进行选择。“扩展”语法允许将丰富的对象和数组编码为URL编码格式,从而实现类似JSON的URL编码体验。有关更多信息,请参阅qs库 基本上扩展允许您解析完整对象
如果扩展的
为false
,则不能发布“嵌套对象”
如果extended
为true
,您可以按自己喜欢的方式进行操作
当extended
属性设置为true
时,URL编码的数据将
将使用
相反,
当extended
属性设置为false
时,URL编码的数据将
相反,可以使用
使用'qs-library'与'querystring-library'进行解析的区别`
- qs库允许您从查询字符串创建嵌套的对象
var qs = require("qs")
var result = qs.parse("person[name]=bobby&person[age]=3")
console.log(result) // { person: { name: 'bobby', age: '3' } }
var queryString = require("query-string")
var result = queryString.parse("person[name]=bobby&person[age]=3")
console.log(result) // { 'person[age]': '3', 'person[name]': 'bobby' }
var qs = require("qs")
var result = qs.parse("?a=b")
console.log(result) // { '?a': 'b' }
var queryString = require("query-string")
var result = queryString.parse("?a=b")
console.log(result) // { a: 'b' }
- 查询字符串库不支持从查询字符串创建嵌套对象
var qs = require("qs")
var result = qs.parse("person[name]=bobby&person[age]=3")
console.log(result) // { person: { name: 'bobby', age: '3' } }
var queryString = require("query-string")
var result = queryString.parse("person[name]=bobby&person[age]=3")
console.log(result) // { 'person[age]': '3', 'person[name]': 'bobby' }
var qs = require("qs")
var result = qs.parse("?a=b")
console.log(result) // { '?a': 'b' }
var queryString = require("query-string")
var result = queryString.parse("?a=b")
console.log(result) // { a: 'b' }
- qs库将从查询字符串中过滤掉“?”
var qs = require("qs")
var result = qs.parse("person[name]=bobby&person[age]=3")
console.log(result) // { person: { name: 'bobby', age: '3' } }
var queryString = require("query-string")
var result = queryString.parse("person[name]=bobby&person[age]=3")
console.log(result) // { 'person[age]': '3', 'person[name]': 'bobby' }
var qs = require("qs")
var result = qs.parse("?a=b")
console.log(result) // { '?a': 'b' }
var queryString = require("query-string")
var result = queryString.parse("?a=b")
console.log(result) // { a: 'b' }
- 查询字符串库将从查询字符串中筛选出“?”
var qs = require("qs")
var result = qs.parse("person[name]=bobby&person[age]=3")
console.log(result) // { person: { name: 'bobby', age: '3' } }
var queryString = require("query-string")
var result = queryString.parse("person[name]=bobby&person[age]=3")
console.log(result) // { 'person[age]': '3', 'person[name]': 'bobby' }
var qs = require("qs")
var result = qs.parse("?a=b")
console.log(result) // { '?a': 'b' }
var queryString = require("query-string")
var result = queryString.parse("?a=b")
console.log(result) // { a: 'b' }
有关更多信息,请参阅和。和应为选定答案这必须是选定的正确答案。