body-parser - 扩展选项(qs vs querystring)

c..*_*c.. 18 node.js express body-parser

在当前版本的body-parser中,现在需要extended使用选项bodyParser.urlencoded().在自述文件中,它解释了:

扩展选项允许选择使用查询字符串库(假设时)或qs库(当为真时)解析URL编码数据.

[...]

默认为true,但不推荐使用默认值.请研究qs和querystring之间的区别,并选择合适的设置.

我找不到任何有用或具体的信息.我只找到了一个已弃用的node-querystring.

这个选项应该永远是真的吗?

Leo*_*tny 34

这样做的原因的消息是,body-parser即将进行更改默认值extendedtruefalse.

扩展协议使用qs来解析x-www-form-urlencoded数据.它的主要优点qs是它使用非常强大的序列化/反序列化算法,能够序列化任何类似json的数据结构.

但是网络浏览器通常不使用此协议,因为它x-www-form-urlencoded被设计为序列化平面html表单.但是,如果您要使用发送丰富的数据结构,它可能会派上用场ajax.

querystringlibrary`提供基本的序列化/反序列化算法,这是所有Web浏览器用来序列化表单数据的算法.这个基本算法比扩展算法简单得多,但仅限于平面数据结构.

两种算法与平面数据完全相同.

现在,当您了解两种算法的优缺点时,您可以自行决定哪种算法更适合您的应用.

  • @ woojoo666这是因为基本序列化/反序列化算法不支持嵌套数据结构. (3认同)
  • 谢谢一堆。希望我不仅不擅长谷歌搜索,而且这会帮助其他人 (2认同)
  • 就像评论那样`extended:false`弄乱2D数组:( (2认同)