【发布时间】:2020-03-22 13:52:52
【问题描述】:
这是我提交表单的 React 代码:
const handleSubmit = (e) => {
e.preventDefault();
console.log('item:', item);
Axios.post('http://<MY_SERVER>/item/add', {name:item})
.then(response => console.log(response))
.catch(err => console.log(err));
};
这是我的 Node API 中的代码:
// Add a new Item
app.post('/item/add', (req, res) => {
const newItem = new Item({
name: req.body.name
});
newItem.save()
.then(item => {
res.json({msg: 'success'});
})
.catch(err => console.log(err));
});
当我运行 handleSubmit 时,什么也没有发生。我只得到console.logs ...另外,这是来自我的服务器的错误
'ValidationError: item validation failed: name: Path' `name` is required
所以很明显,发送到 api 的数据永远不会被接收到。我已经尝试过在网上遇到的多种方式对其进行更改,但没有运气。
【问题讨论】:
-
你在节点端使用bodyparser吗?
-
@AmolBJamkar 是的
-
你确定item变量在前端有值吗?
-
你在console.log中找到req.body了吗?当您点击发布请求时,您确定 node/express 功能正常吗?
-
请让一切清楚。 - 您可以检查您的后端是否与 Postman 一起运行良好。 - 如果后端没问题,然后用 Chrome 的 Inspect-> Network 检查你的前端。
标签: node.js reactjs api docker axios