在当前版本的body-parser中,现在需要extended使用时的选项bodyParser.urlencoded()。在自述文件中,它说明:
extended
bodyParser.urlencoded()
扩展选项允许您在使用querystring库(如果为false)或qs库(为true)解析URL编码的数据之间进行选择。 […] 默认值为true,但是不建议使用默认值。请研究qs和querystring之间的区别,然后选择适当的设置。
扩展选项允许您在使用querystring库(如果为false)或qs库(为true)解析URL编码的数据之间进行选择。
[…]
默认值为true,但是不建议使用默认值。请研究qs和querystring之间的区别,然后选择适当的设置。
我找不到与此有关的任何有用或特定信息。我只找到了一个过时的node-querystring。
此选项是否应该始终为真?
出现此消息的原因body- parser是即将将默认值extended从更改true为false。
body- parser
true
false
扩展协议使用qs库来解析x-www-form- urlencoded数据。它的主要优点qs是它使用了非常强大的序列化/反序列化算法,能够序列化任何类似于json的数据结构。
qs
x-www-form- urlencoded
但是网络浏览器通常不使用此协议,因为x-www-form- urlencoded它旨在对平面html表单进行序列化。不过,如果您要使用发送复杂的数据结构,它可能会派上用场ajax。
ajax
querystring库提供了基本的序列化/反序列化算法,所有网络浏览器都使用该算法序列化表单数据。这个基本算法比扩展算法简单得多,但仅限于平面数据结构。
querystring
两种算法对平面数据的工作方式完全相同。
现在,当您了解两种算法的优缺点时,您可以决定哪种算法更适合您的应用程序。