帖子中的 req.body 为空

2024-04-15

突然之间,我的所有项目都发生了这种情况。

每当我使用express和body-parser在nodejs中发帖时req.body是一个空对象。

var express    = require('express')
var bodyParser = require('body-parser')

var app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded())

// parse application/json
app.use(bodyParser.json())

app.listen(2000);

app.post("/", function (req, res) {
  console.log(req.body) // populated!
  res.send(200, req.body);
});

通过ajax和邮递员它总是空的。

然而通过卷曲

$ curl -H "Content-Type: application/json" -d '{"username":"xyz","password":"xyz"}' http://localhost:2000/

它按预期工作。

我尝试手动设置Content-type : application/json在前者,但我总是得到400 bad request

这让我发疯。

我以为是 body-parser 中更新了一些东西,但我降级了,但没有帮助。

任何帮助表示赞赏,谢谢。


在 Postman 的 3 个可用于内容类型的选项中,选择“X-www-form-urlencoded”,它应该可以工作。

还要摆脱错误消息替换:

app.use(bodyParser.urlencoded())

With:

app.use(bodyParser.urlencoded({
  extended: true
}));

See https://github.com/expressjs/body-parser https://github.com/expressjs/body-parser

“body-parser”中间件仅处理 JSON 和 urlencoded 数据,而不处理多部分

正如@SujeetAgrahari 提到的,body-parser 现在内置于express.js 中。

Use app.use(express.json());在 JSON 主体的最新版本中实现它。对于 URL 编码的主体(由 HTTP 表单 POST 生成的那种)使用app.use(express.urlencoded());

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

帖子中的 req.body 为空 的相关文章

随机推荐