gpt4 book ai didi

node.js - Axios 的 POST 请求不向我的服务器发送数据

转载 作者:太空宇宙 更新时间:2023-11-04 02:44:58 25 4
gpt4 key购买 nike

这是我用于表单提交的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...另外,这是来 self 的服务器的错误

'ValidationError: item validation failed: name: Path' `name` is required

因此很明显,发送到 api 的数据永远不会被接收到。我尝试过以网上遇到的多种方式进行更改,但没有成功。

最佳答案

我附上了两种发布数据的方法,即表单 URL 编码和 JSON。为了发送表单 URL 编码数据,我们需要一个额外的库 querystring

您可以使用npm install query-string来安装它

这是两个请求的代码。如果您使用内容类型 application/json,则不需要 query-string

给你

var axios = require('axios');
const qs = require('querystring');

function sendFormUrlEncodedData() {
const headers = {
'Content-Type': 'application/x-www-form-urlencoded'
};

const payload = {
name: 'morpheus',
job: 'leader'
};

//Send data with form url using querystring node package for it.
axios
.post('https://reqres.in/api/users', qs.stringify(payload), {
headers: headers
})
.then(res => {
console.log(res.data);
})
.catch(err => {
console.log(err);
});
}

function sendJSONData() {
const headers = {
'Content-Type': 'application/json'
};

const payload = {
name: 'morpheus',
job: 'leader'
};

//Send data with JSON, so stringifying it.
axios
.post('https://reqres.in/api/users', JSON.stringify(payload), {
headers: headers
})
.then(res => {
console.log(res.data);
})
.catch(err => {
console.log(err);
});
}

sendFormUrlEncodedData();
sendJSONData();

关于node.js - Axios 的 POST 请求不向我的服务器发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59062895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com