我没有从服务器端的fetch
请求中获取主体对象中的数据。我在SO上尝试了其他解决方案,但就我而言,到目前为止没有任何效果。我在后端使用Node Express,在前端使用React。
在组件中:
addCity = _ => {
const { city } = this.state;
fetch('http://localhost:3003/city_create', {
method: "POST",
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
create_name: city.name,
create_district: city.district,
create_population: city.population
})
})
.then(res => {
console.log(res);
this.getCities;
})
.catch(err => console.log(err))
}
服务器路由:
router.post('/city_create', (req, res) => {
console.log("Trying to create new city...")
const { create_name, create_district, create_population } = req.body;
//debugger
const queryString = "INSERT INTO city (Name, District, Population, CountryCode) VALUES (?,?,?,'PAK')";
getConnection().query(queryString, [create_name, create_district, create_population], (err, rows, fields) => {
console.log(create_name, create_district, create_population);
if (err) {
console.log('A db error occurred:' + err);
res.sendStatus(500);
return;
//throw err;
}
console.log("Inserted a new City with Id: ", rows.insertId);
});
res.end();
});
也尝试在标头中使用FormData
和accept
属性,但没有运气。
答案 0 :(得分:1)
您需要安装body-parser
模块以提取传入请求流的整个正文部分并将其公开在req.body上。
这是Express的一部分,现在我们需要单独安装。
npm install body-parser --save
并将中间件用作:
app.use(bodyParser.json())