最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

express 4.17.1创建的查询对象,要求主体中没有

网站源码admin17浏览0评论

express 4.17.1创建的查询对象,要求主体中没有

express 4.17.1创建的查询对象,要求主体中没有

我当前正在使用Express ^ 4.17.1。

我正在尝试使用url编码查询。我看到的行为与我对快速规范的理解不符。根据规格.html,使用express.urlencoded

在中间件(即req.body)或空对象({})之后,在请求对象上填充了包含已解析数据的新主体对象,>

但是具有此类型的原始网址:

req.originalUrl: /users/status?a=1234&b=5678

我最终得到这个:

req.body: {}

req.query: {"a":"1234","b":"5678"}

我的代码实现如下:

const app = express(); app.use(express.urlencoded({ extended: true, limit: '3MB' })); app.use(express.json({ limit: '3MB' }));

req.query对象包含我在req.body中期望的内容,为什么req.body为空?我是否需要使Express应用程序的查询解析器无效,以使查询以req.body结尾?我该怎么办?

如果express默认包含查询解析器,为什么还要添加对express.urlencoded的支持,您是否可以通过这两个工具访问不同类型的查询?


编辑5/11/2020

这个问题来自我对http的缺乏了解。

urlencoded模块用于解码已编码为application / x-www-form-urlencoded的主体数据。所有这些意味着,主体部分的编码方式与url部分的编码方式相同(如果我错了,请纠正我!)。但它不会以任何方式将正文部分链接到url。

所以req.body为空,因为我没有在GET调用中传递任何主体。而且查询详细信息的确是从req.query获取的。

我目前正在使用Express ^ 4.17.1。我试图弄清URL编码的查询。我看到的行为与我对快速规范的理解不符。根据规格http:// ...

回答如下:

您可以这样运行查询:

发布评论

评论列表(0)

  1. 暂无评论