7
ノードサーバーにBLOBオブジェクトを送信しようとしています。クライアント側では、MediaRecorderを使用してオーディオを録音しています。そのファイルをサーバーに送信して処理します。fetch、multer、expressを使用してblobデータをノードに送信
saveButton.onclick = function(e, audio) {
var blobData = localStorage.getItem('recording');
console.log(blobData);
var fd = new FormData();
fd.append('upl', blobData, 'blobby.raw');
fetch('/api/test',
{
method: 'post',
body: fd
})
.then(function(response) {
console.log('done');
return response;
})
.catch(function(err){
console.log(err);
});
}
これはmulterを使用して、私の急行路線、次のとおりです。
var upload = multer({ dest: __dirname + '/../public/uploads/' });
var type = upload.single('upl');
app.post('/api/test', type, function (req, res) {
console.log(req.body);
console.log(req.file);
// do stuff with file
});
しかし、私のログは何も返さない:
{ upl: '' }
undefined
は、任意のヘルプは感謝ので、この上で長い時間を過ごして下さい!
マルチパート '' 'の一部var upload = multer({dest:__dirname + '/../public/uploads/'}); var type = upload.single( 'upl'); '' ' – darkace
' blobData'の代わりに通常の文字列を送信しようとすると何かが得られますか? 'console.log(blobData)'はあなたに何を伝えますか? 。 – adeneo
ブラウザのWeb開発ツールからネットワーク要求を取得すると、 'Content-Type'ヘッダはブラウザから送信されますか? – mscdex