我尝试将数据发送到网络服务器,客户端使用
fetch()
,服务器端使用 Express。
let formData = new FormData();
formData.append("key", MY_API_KEY);
formData.append("fileId", 57);
fetch("https://localhost:3001/api", {
method: "POST",
body: formData,
})
.then((response) => { console.log (response); })
.catch((error) => { console.error(error); });
app.post('/api', (req, res) => {
console.log (req.body);
console.log (req.body.key);
res.status(200).json({ status: 'success' });
})
在服务器端,我得到
{}
代表 req.body
和 undefined
代表 req.body.key
。
当我查看客户端的开发工具时,我看到带有密钥和 fileId 的有效负载。但是服务器端好像收不到数据,不知道为什么?
有什么办法可以帮助解决这个问题吗?
由于我无法发表评论,让我将我的方法放在答案部分。
使用 FormData 发送表单数据时,重要的是要了解在 Express 的服务器端,您需要中间件来解析表单数据。 您可以使用
multer
作为中间件。
const upload = multer();
app.post('/api', upload.none(), (req, res) => {
console.log(req.body);
console.log(req.body.get('key'));
res.status(200).json({ status: 'success' });
});