无法解析节点JS Express层上的FormData

时间:2020-10-06 13:51:18

标签: javascript node.js express axios multer

我正在以FormData的形式将数据发送到中间件(Node js),但是当我尝试将其记录到中间件中时,却得到了{}。如何获取要从客户端发送的FormData,因为它需要传递到后端。

这是用于从客户端转换为FormData的代码,

const dataUrl = canvas.toDataURL('image/png', 1);
const blob = await fetch(dataUrl).then((res) => res.blob());
const formData = new FormData();
formData.append('file', blob, name + '.png');

我已经做过一些先前的研究,并且了解Multer,但是我无法弄清楚如何在我的应用程序中使用它,

node js结构有点像这样-

app.js

import express from 'express';
import myRouter from './routes/myRouter';
var app = express();
app.use('/api', myRouter);

在myRouter.js中,我正在侦听端点并调用相应的控制器,

router.post('/endpoint', endpointController);

endpointController函数-

const endpointController = async function (req, res) {
  const URL = url;
  const { body, headers } = req;
  try {
    const { data, error } = await axios.post(URL, body, headers: {
      ...headers,
      'Content-Type': 'multipart/form-data'
    });
    if (data) {
      res.send(data);
    } else {
      res.send(error);
    }
  } catch (error) {
    console.log(error);
  }
};

当我尝试使用上述API时,我得到了400。任何帮助将不胜感激。谢谢。

0 个答案:

没有答案