Обработка файлов на сервере узла приводит к неожиданному завершению составных данных
Я транслирую файл jpg на сервер узла. Но проблема в том, что иногда он работает, а иногда - не удается из-за следующей ошибки и сбивает мой сервер
events.js:183
066466+00:00 app[web.1]: throw er; // Unhandled 'error' event
2018-06-19T00:45:07.066468+00:00 app[web.1]: ^
2018-06-19T00:45:07.066470+00:00 app[web.1]:
066472+00:00 app[web.1]: Error: Unexpected end of multipart data
2018-06-19T00:45:07.066474+00:00 app[web.1]: at
/app/node_modules/busboy/node_modules/dicer/lib/Dicer.js:62:28
Вот мой код для обработки файла
req.busboy.on('file', function (fieldname, file, filename) {
console.log("Uploading: " + (filename));
fstream = fs.createWriteStream(__dirname + '/public/img/'+ filename);
file.on('data', function(chunk) {
fstream.write(chunk);
});
file.on('end', function() {
fstream.end();
console.log('File [' + fieldname + '] Finished sucessfully');
});
file.on('error',function(err){
console.log('fstream error' + err);
file.unpipe();
});
});
Может кто-нибудь помочь, пожалуйста, в чем может быть проблема здесь? Заранее спасибо.
1 ответ
Хорошо, отвечая на мой собственный вопрос. Я не правильно обрабатывал событие ошибки. Вот рабочий код.
var fstream;
req.pipe(req.busboy);
req.busboy.on('file', function (fieldname, file, filename) {
console.log("Uploading: " + (filename));
fstream = fs.createWriteStream(__dirname + '/public/img/'+ filename);
file.on('data', function(chunk) {
fstream.write(chunk);
});
file.on('error',function(err){
console.log('fstream error ' + err);
});
file.on('end', function() {
fstream.end();
console.log('File [' + fieldname + '] Finished sucessfully');
});
});
req.busboy.on('error',function(err){
console.log('req.busboy error' + err);
});