这是我服务器的代码:
var express = require('express');
var bodyParser = require("body-parser");
var app = express();
app.use(bodyParser.json());
app.post("/", function(req, res) {
res.send(req.body);
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
从 Postman,我向http://localhost:3000/发起 POST 请求,在 Body/form-data 中我有一个键“foo”和值“bar”。
但是我在响应中不断得到一个空对象。 req.body
属性始终为空。
我错过了什么?
3 回答
添加请求的编码。这是一个例子
然后在 Postman 中选择
x-www-form-urlencoded
或将 Content-Type 设置为application/json
并选择raw
编辑以使用原始
生
头
编辑#2回答聊天中的问题:
你确定可以,只看这个答案如何从 express 4 处理 FormData
x-www-form-urlencoded
和raw
有什么区别application/json 和 application/x-www-form-urlencoded 的差异
示例 JSON 和 JSON 的结果:
设置 Content-typeL application/JSON:
我在使用路由器时遇到了这个问题。只有 GET 正在工作,POST,PATCH 和删除反映了 req.body 的“未定义”。在路由器文件中使用 body-parser 之后,我能够使所有 HTTP 方法正常工作......
我是这样做的:
对于 PATCH 和 DELETE,user568109 建议的这个技巧也奏效了。