一尘不染

正文解析器-扩展选项(qs与querystring)

node.js

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

扩展选项允许您在使用querystring库(如果为false)或qs库(为true)解析URL编码的数据之间进行选择。

[…]

默认值为true,但是不建议使用默认值。请研究qs和querystring之间的区别,然后选择适当的设置。

我找不到与此有关的任何有用或特定信息。我只找到了一个过时的node-querystring

此选项是否应该始终为真?


阅读 500

收藏
2020-07-07

共1个答案

一尘不染

出现此消息的原因body- parser即将将默认值extended从更改truefalse

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

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

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

两种算法对平面数据的工作方式完全相同。

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

2020-07-07