【发布时间】:2021-05-05 10:27:09
【问题描述】:
这是我在客户端的获取请求
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 时它会失败。
Package.json
"dependencies": {
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"mongoose": "~3.6.13"
}
【问题讨论】:
-
你是否使用了body-parse等中间件(
app.use())来解析body? -
您能否分享一下您可能包含在 app.js 文件中的 body-parser 中间件的代码?如果它通过邮递员而不是通过 fetch 工作,那么我们可能需要更新中间件中设置的选项。如果不查看中间件代码,将无法提供帮助。