Узел / Многопартийность выдает ошибку "Неизвестное завершение события" при разборе данных многопартийности / формы
Я разрабатываю приложение для узлов с использованием 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);
});
но это все равно не повлияло на ошибку.