通过 Express / fetch 发布数据

问题描述 投票:0回答:1

我尝试将数据发送到网络服务器,客户端使用

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 的有效负载。但是服务器端好像收不到数据,不知道为什么?

有什么办法可以帮助解决这个问题吗?

javascript node.js express fetch-api
1个回答
0
投票

由于我无法发表评论,让我将我的方法放在答案部分。

使用 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' });
});

© www.soinside.com 2019 - 2024. All rights reserved.