Обработка файлов на сервере узла выдает неожиданный конец составных данных

Я передаю файл 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();
    });
   });

Может ли кто-нибудь помочь, в чем может быть проблема? Заранее спасибо.


person sparks    schedule 19.06.2018    source источник


Ответы (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);

  });
person sparks    schedule 20.06.2018