Узел / Многопартийность выдает ошибку "Неизвестное завершение события" при разборе данных многопартийности / формы

Я разрабатываю приложение для узлов с использованием Hapi в качестве базовой платформы и хочу осуществить загрузку файлов прямо сейчас. Файлы передаются из моего внешнего интерфейса как данные многопартийности / формы и должны быть проанализированы многопартийной структурой. Моя проблема в том, что я не могу заставить сервер анализировать форму, не получив следующую ошибку:

Ошибка: Неизвестное завершение события в Object.exports.assert (/home/somsky/code/webdev/rider/server/node_modules/hoek/lib/index.js:736:11) в internals.Podium.on.internals.Podium.addListener (/home/somsky/code/webdev/rider/server/node_modules/podium/lib/index.js:322:10) в Form.parse (/home/somsky/code/webdev/rider/server/node_modules/multiparty/index.js:137:7)

Я использую стандартный пример со страницы многопартийности npm.

Мой код:

 const multiparty = require('multiparty');
 exports.setAvatar = {
  auth: false,

  payload:{
    maxBytes: 209715200,
    output:'stream',
    parse: true
  }, 

  handler: function (request, reply) {
    //const user = request.payload;

    var count = 0;
    var form = new multiparty.Form();

    // Errors may be emitted 
    // Note that if you are listening to 'part' events, the same error may be 
    // emitted from the `form` and the `part`. 
    form.on('error', function(err) {
      console.log('Error parsing form: ' + err.stack);
    });

    // Parts are emitted when parsing the form 
    form.on('part', function(part) {
      // You *must* act on the part by reading it 
      // NOTE: if you want to ignore it, just call "part.resume()" 

      if (!part.filename) {
        // filename is not defined when this is a field and not a file 
        console.log('got field named ' + part.name);
        // ignore field's content 
        part.resume();
      }

      if (part.filename) {
        // filename is defined when this is a file 
        count++;
        console.log('got file named ' + part.name);
        // ignore file's content here 
        part.resume();
      }

      part.on('error', function(err) {
        // decide what to do 
      });
    });

    // Close emitted after form parsed 
    form.on('close', function() {
      console.log('Upload completed!');
      res.setHeader('text/plain');
      res.end('Received ' + count + ' files');
    });

    // Parse req 
    form.parse(request);

  },

Сначала моя теория заключалась в том, что form.parse требуется обратный вызов, поэтому я изменил его на:

// Parse req 
    form.parse(request, (err, fields, files) => {
      console.log(err);
      console.log(fields);
      console.log(files);
    });

но это все равно не повлияло на ошибку.

0 ответов

Другие вопросы по тегам