请求正文在post方法Node js服务器中为空



Login.js - react component.

我打印了JSON.stringify(凭据)对象,它是有效的,但当我打印请求。

//sending a post request to the server with the username and password inserted by the user.
async function loginUser(credentials) {
console.log(JSON.stringify(credentials));
return fetch('http://localhost:8080/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(credentials)
})
.then(response => {
console.log(response);
})
};

server.js

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

var app = express()

app.use(cors());
// create application/json parser
var jsonParser = bodyParser.json()

// create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: false })

// POST /login gets urlencoded bodies
app.post('/login', urlencodedParser, function (req, res) {
console.log(req.body);
res.status(200).send('welcome, ' + req.body.username)
})

你必须使用中间件来解析post请求中的json主体,你没有使用bodyParser.json()作为中间件
下面是你更新的代码
server.js

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

var app = express()

app.use(cors());
// create application/json parser
app.use(bodyParser.json());
// create application/x-www-form-urlencoded parser
app.use(bodyParser.urlencoded({ extended: false }));

// POST /login gets urlencoded bodies
app.post('/login', function (req, res) {
console.log(req.body);
res.status(200).send('welcome, ' + req.body.username)
})

最新更新