Ответ 1
Наконец-то я получил эту работу. Подход, чтобы заставить это работать, - это закодировать blob на клиенте и декодировать его на сервере.
Frontend:
// converts blob to base64
var blobToBase64 = function(blob, cb) {
var reader = new FileReader();
reader.onload = function() {
var dataUrl = reader.result;
var base64 = dataUrl.split(',')[1];
cb(base64);
};
reader.readAsDataURL(blob);
};
blobToBase64(blob, function(base64){ // encode
var update = {'blob': base64};
$http.post('/api/save_recording', update)
.success(function(new_recording) {
console.log("success");
});
});
Backend:
exports.saveRecording = function(req, res) {
var buf = new Buffer(req.body.blob, 'base64'); // decode
fs.writeFile("temp/test.wav", buf, function(err) {
if(err) {
console.log("err", err);
} else {
return res.json({'status': 'success'});
}
});
};