반응형
[object Object] Nodejs로 저장된 Blob
저는 HTML5로 마이크에서 오디오를 녹음한 후 저장할 서버로 보내고 싶습니다.그러나 현재 저장된 파일에는 다음과 같은 내용만 포함되어 있습니다.[object Object]
여기 제 코드의 일부분이 있습니다.
프론트엔드:
console.log(blob);
$http.post('/api/save_recording', blob)
.success(function(new_recording) {
console.log("success");
})
로그 인쇄:
Blob {type: "audio/wav", size: 237612, slice: function}
success
백엔드:
exports.saveRecording = function(req, res) {
console.log(req.body);
fs.writeFile("temp/test.wav", req.body, function(err) {
if(err) {
console.log("err", err);
} else {
return res.json({'status': 'success'});
}
})
}
로그 인쇄:{ type: 'audio/wav', size: 786476 }
이것이 왜 작동하지 않는지, 그리고 어떻게 고쳐야 하는지 알려주시겠습니까?
드디어 일을 시작했어요.이것을 작동시키는 방법은 클라이언트에서 블롭을 인코딩하고 서버에서 해독하는 것입니다.
프론트엔드:
// 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");
});
});
백엔드:
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'});
}
});
};
언급URL : https://stackoverflow.com/questions/23986953/blob-saved-as-object-object-nodejs
반응형
'programing' 카테고리의 다른 글
추가 쿼리 매개 변수를 사용할 때 Instagram Redirect URI가 원래 Redirect URI와 일치하지 않음 (0) | 2023.11.02 |
---|---|
jQuery: 부모의 특정한 자녀에게 어떻게 접근합니까? (0) | 2023.11.02 |
데이터를 삽입하고 특정 열을 확인하여 중복을 방지합니다. (0) | 2023.11.02 |
C에서 읽기 전용 메모리는 어떻게 구현됩니까? (0) | 2023.11.02 |
Android의 작업 표시줄에서 아이콘/로고 제거 (0) | 2023.11.02 |