Как получить данные BLOB, отправленные через вызов API в NodeJS? - PullRequest
0 голосов
/ 20 апреля 2020

С ReactJS Я отправил данные BLOB через вызов API, и мой Node-сервер прослушивает этот порт.

const audioBlob = new Blob(audioChunks, { type: 'audio/wav'});
let fd = new FormData();
fd.append('audio', audioBlob);
axios.post('http://localhost:3001/generateConsolidatedAudio', {
data: fd });

Node JS:

const express = require('express');
const router = express.Router();
const app = express();
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.text());
router.post('/generateConsolidatedAudio', function(req, res, next) {
  res.send('Hello Gi');
}));

Я сделал console.log(req.body) и console.log(req.data), но оба были undefined.

Я хочу получить BLOB-объект из него и преобразовать его в файл WAV. Пожалуйста, помогите?

1 Ответ

0 голосов
/ 20 апреля 2020

Лучше преобразовать большой двоичный объект в файл и отправить файл

const audioBlob = new Blob(audioChunks, { type: 'audio/wav'});
var audioFile = new File([audioBlob], "name");
let fd = new FormData();
fd.append('audio', audioFile);
axios.post('http://localhost:3001/generateConsolidatedAudio', {
data: fd });

Теперь в Nodejs Вы не можете обрабатывать файлы или данные, содержащие много частей, используя body-parser. Так что используйте multer npm i multer

...