0

Я пытаюсь сохранить входящий файл из запроса FormData xhr, но я даже не могу разобрать входящий запрос. Это, как я пытаюсь отправить файл:Express 4 FormData multipart parse POST-запрос

... 
var formData = new FormData(); 
formData.append(fileType + '-blob', blob); 
var request = new XMLHttpRequest(); 
request.open('POST', url); 
request.send(data); 
... 

И это, как я пытаюсь поймать его:

var express = require('express'); 
var router = express.Router(); 

router.post('/savestream', function(req, res) { 
    var body = ''; 
    req.on('readable', function() { 
     body += req.read(); 
    }); 
    req.on('end', function() { 
     //body = JSON.parse(body); 
     console.log(body); 
     res.end(body); 
    }); 
}); 

Я также использую bodyParser в моем приложении:

var bodyParser = require('body-parser'); 
... 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
... 

Но когда я пытаюсь получить его, я получаю исходные данные, как:

------WebKitFormBoundaryB0wkHt33s0gbqiB3 
Content-Disposition: form-data; name="video-blob"; filename="blob" 
Content-Type: video/webm 

Eߣ@ B��B��B��B�B�@webmB��B��S�g)I�[email protected](*ױ@[email protected]�@[email protected]�@6T�[email protected]�@0ׁcŁ��"��@und�@V_VP8%��@VP8����@@���C�[email protected]����@���P�*@�>m6�I�#"� (�in�[email protected] ��l����9}�r�d�=���{퓐��'!��NC�l����9}�r�d�=���{퓐��'!��NC�l����9}�r�d�=���{퓐��'!��NC�l����9}�r�d�=���{퓐��'!��NC�l����� 
------WebKitFormBoundaryB0wkHt33s0gbqiB3-- 

Как я могу разобрать его? Когда я отправляю данные json, он работает хорошо.

ответ

4

Модуль body-parser в настоящее время не предоставляет парсер multipart/form-data. Для этого вам понадобится что-то вроде multer, busboy/connect-busboy, multiparty, или formidable.

+0

Получил это с 'multer'. Спасибо! – Footniko