首页 > 解决方案 > 节点 express req.body 返回空 obj

问题描述

这是我在客户端的获取请求

let data = JSON.stringify({
  "username": "test",
  "password": "test"
 });

 let response = await fetch("http://localhost:5050/api/login", {
  method: 'post',
  body: data
})

在节点服务器中,这就是我登录的内容

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: false}))
app.use(express.json());
app.use(cors())


router.post('/login', function(req, res) {
  console.log(req.body) // Returns {}
  res.json(JSON.stringify({success: "qwer123qwer324135142534123qwerqwersfg"}));
})

而打印req.body返回{}。谁能知道如何解决它?

更新

我用邮递员尝试了同样的事情。它在节点服务器中打印正确的对象。但是,当只使用 fetch 时它失败了。

包.json

"dependencies": {
   "body-parser": "^1.19.0",
   "cors": "^2.8.5",
   "express": "^4.17.1",
   "mongoose": "~3.6.13"
 }

标签: node.jsexpressfetch

解决方案


您需要使用中间件来解析正文:

在您的应用中添加:

app.use(express.json());

推荐阅读