在当前版本的body-parser中,现在需要使用extended
时的bodyParser.urlencoded()
选项。在自述文件中,它解释了:
扩展选项允许选择使用查询字符串库(假设时)或qs库(当为真时)解析URL编码数据。
[...]
默认为true,但不推荐使用默认值。请研究qs和querystring之间的区别,并选择合适的设置。
我无法找到任何有用或具体的信息。我只发现了一个已弃用的node-querystring。
这个选项应该永远是真的吗?
答案 0 :(得分:33)
此消息的原因是body-parser
为about 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浏览器都使用该算法来序列化表单数据。这个基本算法比扩展算法简单得多,但仅限于平面数据结构。
这两种算法与平面数据完全相同。
现在,当您了解这两种算法的优缺点时,由您来决定哪种算法更适合您的应用。