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

时间:2015-03-20 20:40:45

标签: node.js express body-parser

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

  

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

     

[...]

     

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

我无法找到任何有用或具体的信息。我只发现了一个已弃用的node-querystring

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

1 个答案:

答案 0 :(得分:33)

此消息的原因是body-parserabout to change default value for extended from true to false

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

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

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

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

现在,当您了解这两种算法的优缺点时,由您来决定哪种算法更适合您的应用。