Узел / Экспресс: макет req.files при разархивировании директории - PullRequest
0 голосов
/ 13 февраля 2019

Я извлекаю некоторые файлы из zip-файла с Node/Express.Эта библиотека, которая извлекает файлы, может записывать на диск или сохранять файлы в массиве, который содержит буфер данных.

Есть некоторый нисходящий код, который взаимодействует с Express/Multers req.files в этом формате.Когда пользователь не загружает zip, этот код получает то, что ему нужно.Когда пользователь загружает почтовый индекс, содержимое не в этой форме.

Каковы некоторые подходы к такому случаю?В настоящее время я создаю массив, который имеет форму, аналогичную req.files, на основе массива, создаваемого библиотекой zip.

// If the payload is a `zip`, unzip and put the files on `req`
const unZippedFiles = await unZipFile(files[0].path, req);
req.files = unZippedFiles;
req.unzippedPath = unzippedPath;

этот массив файлов имеет другую форму и свойства, отличные от массива, созданного Мултером.

// otherwise..just use multer to put files on req
const importFileHandler = multer({
  dest,
  preservePath: true,
  fileFilter: (_req, file, cb) => {
    if (fileFilter.isPermitted(file)) {
      return cb(null, true);
    }

    const err = new Error('file type is not allowed');
    return cb(null, false, err);
  }
}).any();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...