Отправка и получение файла с помощью API Call в React / Node - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь создать приложение React, которое загружает файл, обрабатывает его на серверной части, а затем возвращает файл для загрузки на серверную часть. Я успешно получаю файл на сервер и пытаюсь выяснить, как отправить файл ответов обратно во внешний интерфейс для загрузки, но не уверен, как отправить этот файл или получить его на клиенте.

//FRONTEND

async uploadFiles() {
  this.setState({uploadProgress: {},uploading: true});
  const promises = [];
  this.state.files.forEach(file => {
    promises.push(this.sendRequest(file));
  });
  try {
    await Promise.all(promises);

    this.setState({successfullUploaded: true,uploading: false});
    window.setTimeout(() => {
      this.props.closeUpload('finished')
    }, 2000)
  } catch (e) {
    // Not Production ready! Do some error handling here instead...
    this.setState({successfullUploaded: true,uploading: false});
  }
}


//BACKEND

module.exports = function upload(req, res) {
  var form = new IncomingForm();

  form.on("file", (field, file) => {
    // Do something with the file
    // e.g. save it to the database
    // you can access it using file.path
    console.log(file.path)
    localPathOrig = 'files/midi.mid'
    localPathResp = 'files/chords.mid'
    fs.copyFile(file.path, localPathOrig, console.log)
    fs.copyFile(localPathOrig, localPathResp, console.log)
    //do things to file 'localPathResp'
  });
  form.on("end", () => {
    res.writeHead(200, {
      "Content-Type": "application/octet-stream",
      "Content-Disposition": "attachment; filename=" + localPathResp
    });
    fs.createReadStream(localPathResp).pipe(res);
  });
  form.parse(req);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...