【问题标题】:parsing form-data with nodejs express使用 nodejs express 解析表单数据
【发布时间】:2022-02-15 21:26:16
【问题描述】:

我正在使用 axios 从 reactjs 应用程序发送表单数据,如下代码所述。快递配置正确,req.body 仍然为空。在这种情况下我做错了什么?

import bodyParser from 'body-parser';

app.use(busboy());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

reactjs

export const createAd = (token, ad) => async (dispatch) => {
  const headers = {
    headers: {
      "content-type": "multipart/form-data",
      Authorization: `Bearer ${token}`,
    },
  };


  for (var pair of ad.entries()) {
    console.log(pair[0] + ', ' + pair[1]);
  }

  const response = await api
    .post("/ads/create/", ad, headers)
    .catch((error) => {
      dispatch({ type: constants.PUSH_ERROR, payload: error });
    });
  if (response && response.status === 201) {
    dispatch({ type: constants.CREATE_AD, payload: response.data.ad });
  }
};

api 端点

export const createAd = async (req, res) => {
    try {
        const bb = busboy({ headers: req.headers });

        bb.on('file', async (name, file, info) => {
            console.log("*Uploading files")
            const { filename, encoding, mimeType } = info;
            var saveTo = 'public/ads/' + filename
            file.pipe(fs.createWriteStream(saveTo));
            file.resume();
        });
        bb.on('finish', () => {
            console.log('Upload complete');
            res.writeHead(200, { 'Connection': 'close' });
            res.end("That's all folks!");
        });

        console.log(req.body) // empty body here {}
        res.status(201).send({ message: "Ad created.", ad: {} });


    } catch (error) {
        res.status(400).send(error)
        console.error(error)
    }
}

【问题讨论】:

    标签: javascript node.js express multipartform-data body-parser


    【解决方案1】:

    使用multiparty 库您也可以做到这一点。

    app.post('/ads/create/', function (req, res) {
    var form_data = new multiparty.Form();
    form_data.parse(req, function(err, fields, files) {
        // fields fields fields
    });
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 2018-11-28
      • 2018-10-31
      • 2022-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多