Обработка полевой ошибки с помощью busboy (запретить отправку файла, если есть полевая ошибка) - PullRequest
0 голосов
/ 15 апреля 2020

Я использую busboy для загрузки файла способом, описанным в коде ниже. Если в полевой стадии есть ошибка проверки, я не хочу обрабатывать файл (то есть не хочу загружать файл), не уверен, как я могу это сделать ... потому что и on file, и on field запускаются асинхронно

    busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
      // upload file

    busboy.on('field', function(fieldname, val, fieldnameTruncated, valTruncated) {
      console.log('Field [' + fieldname + ']: value: ' + inspect(val));
      if (val == null) {
          res.render("error meessage on page please enter a value")
      }
    });

    busboy.on('finish', function() {
      console.log('Done parsing form!');
    });

    req.pipe(busboy);

1 Ответ

0 голосов
/ 22 апреля 2020
var fieldError = false;
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
  // upload file
file.on('error', function (err) {
        });
})
busboy.on('field', function(fieldname, val, fieldnameTruncated, valTruncated) {
  console.log('Field [' + fieldname + ']: value: ' + inspect(val));
  if (val == null) {
      fieldError = true;
  }
});

busboy.on('finish', function() {
  console.log('Done parsing form!');
  if(fieldError)
    res.render("error meessage on page please enter a value")
});

busboy.on('error', function (err) {
  //
});

req.pipe(busboy);

Примечание. Чтобы сделать busboy надежным, добавьте busboy.on («error») и file.on («error»). Это дополнительный вопрос.

...