主体中没有"/>
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:// ...
回答如下:您可以这样运行查询:
更多推荐
express 4.17.1创建的查询对象,要求主体中没有
发布评论