节点/表达:解压缩目录时模拟一个req.files

时间:2019-02-12 21:54:48

标签: node.js express

我正在使用Node/Express从zip文件中提取一些文件。该提取文件的库可以写入磁盘或将文件存储在包含数据缓冲区的数组中。

下游有一些代码以这种格式与Express/Multers req.files进行交互。当用户不上传zip时,此代码将获取所需的内容。用户上载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;

此文件数组与Multer产生的数组具有不同的形状和属性。

// 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();

0 个答案:

没有答案