У меня есть запрос 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 каким-то образом изменяет мой вывод, так что это вызывает ошибку.