NodeJS: пересылка данных формы во внешний API - PullRequest
0 голосов
/ 18 июня 2020

Ищу помощь в решении моей проблемы, любые советы приветствуются!

Итак, я загружаю файл csv как данные формы в среду узла с запросом XHR:

       var FormData = new FormData();
    var file = input.files[0];
FormData .append("file", file);

В среде узла Я получаю следующее в req.files с JSON .stringify: req.files

Затем мне нужно добавить заголовок авторизации и отправить те же данные во внешний API.

То, что я пробовал:

  • с использованием модуля запроса и `` .pipe () ``
  • с использованием busboy
  • и ax ios с данными формы
  • в основном все эти сообщения: 1 , 2 , 3 , 4, 5 , 6 , 7

Но файл отправляется неправильно, и сервер отвечает 400.

Ограничения Поскольку эта среда узла основана на облаке, я не могу получить доступ ни к одному из файлов конфигурации js и поэтому использую express.

Спасибо

1 Ответ

0 голосов
/ 18 июня 2020

Вы можете достичь того, что ищете, с помощью axios

const axios = require("axios")
const FormData = require("form-data")
const fs = require("fs")

const url = "your.url.com"
const form_data = new FormData()
form_data.append("file", fs.createReadStream(localPath))

const request_config = {
  headers: {
    ...form_data.getHeaders()
  },
  maxContentLength: Infinity,
  maxBodyLength: Infinity,
  auth: { // if auth is needed
    username: USERNAME,
    password: PASSWORD
  }
}

return axios.post(url, form_data, request_config)

Надеюсь, это поможет

...