3

I have a node endpoint with takes post request for uploading files. I am able to read the data(file) being send from the browser, now I want to forward the data or the whole request to another server hosted somewhere else. I am using node, express and express-fileupload. I am open to get rid on express-fileupload plugin if required. Following is what I have

app.post("/uploadImage", (req, res) => {
  const headers = {
    "Content-Type": "multipart/form-data"
  };
  axios
    .post("http://139.59.80.251:8080/homely/images", req.files.file.data, {
      headers: headers,
    })
    .then((resp) => {
      res.send(resp);
    })
    .catch((e) => {
      res.status(500).send(e);
    });

});

Any help is appreciated.

me_digvijay
  • 5,374
  • 9
  • 46
  • 83

1 Answers1

1

You must send the buffer data as form-data.

For this, you have to convert the files (buffer data) via the package form-data.

The code should look like this:

const FormData = require("form-data");
app.post("/uploadImage", (req, res) => {
  const headers = {
    "Content-Type": "multipart/form-data"
  };
  const my_file = new FormData();
  my_file.append("file", req.files.file.data, { filename: req.files.file.name });
  axios
    .post("http://139.59.80.251:8080/homely/images", my_file, {
      headers: headers,
    })
    .then((resp) => {
      res.send(resp);
    })
    .catch((e) => {
      res.status(500).send(e);
    });
});
Adrian Mole
  • 49,934
  • 160
  • 51
  • 83