Загрузка файла из API моего сервера в другой API - Node JS (Express) - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть запрос API на стороне клиента, который должен отправить запрос POST на мой собственный сервер express с файлом formData, который затем должен быть доступен по маршруту моего сервера и передан его стороннему API.

const addAttachment = async () => {
  const formData = new FormData();
  formData.append("file", fileInput.files[0]);

  const result = await axios.post("http://my-server:5000/attachment", formData);

  console.log(result);
};

Затем на стороне сервера я получаю доступ к этому маршруту:

app.post("/attachment", multer().single("file"), async (req, res) => {
  console.log(req.file);

  fetch("http://expternal-api.com/rest/api/attachments", {
    method: "POST",
    body: req.file,
    headers: {
      "Content-Type": "multipart/form-data",
    },
  })
    .then((res) => console.log(res))
    .then((result) => res.json(result))
    .catch((err) => console.log(err));
});

Я использую multer для доступа к файлу из моего запроса браузера к серверу, и вывод этого req.file:

{
  fieldname: 'file',
  originalname: 'New Text Document (2).txt',
  encoding: '7bit',
  mimetype: 'text/plain',
  buffer: <Buffer 74 65 73 74 73 65 74 65 73 74 73 74 65 74>,
  size: 14
}

Но проблема в том, правильно ли это, потому что в моем console.log с сервера я получаю ошибку 500 Внутренняя ошибка сервера. Я передаю правильное тело стороннему API? Он должен использовать multipart / form-data, но я не уверен, что Multer каким-то образом изменяет мой вывод, так что это вызывает ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...