Отправка и обработка wav-файла в NodeJS - PullRequest
0 голосов
/ 19 ноября 2018

Есть несколько сообщений на эту тему, но я все еще не смог отладить мой код, например. Отправка содержимого аудиоэлемента HTML5 в ajax POST

В настоящее время у меня есть клиент, который позволяет пользователю записывать аудио с помощью Recorder.js. Затем я хочу взять полученный wav-файл, который хранится в BLOB-объекте, и отправить его на мой серверный код и сохранить в mongo.

   rec.exportWAV(sendToBackEnd);
}


function sendToBackEnd(blob){
    var blob = blob;
    console.log(blob)
    var fd = new FormData();
    fd.append('fname', 'test.wav');
    fd.append('data', blob);
    // fd.append('data', blob);
    $.ajax({
        url: '/recordings',
        type: 'POST',
        data: fd,
        processData: false,
        // contentType: "audio/wav"
    }).done(function(data) {
       console.log(data);
    });
}

Я прочитал в нескольких сообщениях, что я должен установить contentType в ложь, однако тогда req.body пусто.

На стороне сервера у меня есть следующий код.

var mongoose=       require('mongoose');
var express =       require('express');
var app     =       express();
var http    =       require('http');
var port    =       3000;
var bodyParser=     require('body-parser');


app.use(express.static('public'))
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(bodyParser.urlencoded({extended:true,limit:'50mb'}));
// app.use(bodyParser.json({ limit: '50mb' }));
// app.use(bodyParser.raw({ type: 'audio/wav',extended:true, limit: '50mb' }));

app.get('/',function(req,res){
    res.render('home.html')
});
app.get('/recordings/new',function(req,res){
    res.render('new.html')
});


app.post('/recordings',function(req,res){
    var recording = req.body
    console.log(req.body)
});

// app.get('/recordings',function(req,res){
//  res.render('index.html')
// });






mongoose.connect("mongodb://localhost:27017/sensor",{ useNewUrlParser: true },function(){
    console.log('database is connected');
});

app.listen(port, function(){
    console.log('sensor server is running')
    });

Любая помощь по этому вопросу будет высоко оценена. Спасибо!

...