Есть несколько сообщений на эту тему, но я все еще не смог отладить мой код, например. Отправка содержимого аудиоэлемента 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')
});
Любая помощь по этому вопросу будет высоко оценена. Спасибо!