Decompress-zip испускает что-либо в этом экспресс-маршруте, почему? - PullRequest
1 голос
/ 22 марта 2019

Может быть, я просто устал, но я не могу понять, почему это не сработает! Это экспресс-маршрут, работающий на AWS Lambda с использованием безсерверной инфраструктуры (serverless-http).

Я использую Multer для обработки загрузки файла, и это, кажется, работает нормально, я вижу, что файл загружен и доступен. Я извлекаю большую часть пути к файлу из свойства req.file, созданного multer. Этот код не записывает ничего в console.log в моих журналах cloudwatch, нет ошибок, нет извлечения завершено, нет "IN HERE !!" из фильтра на unzipper.extract (). Я проверил с помощью fs.exists, чтобы убедиться, что файл действительно существует (он существует), и когда я намеренно использую поддельное имя файла, ошибка точно выдается. Что происходит?

app.post('/incoming', upload.single('file'), (req, res) => {
  let filePath = '/tmp/'+req.file.filename
  let unzipper = new DecompressZip(filePath)
  unzipper.extract({
    path: '/tmp',
    filter: function (file) {
      console.log('IN HERE!!');
        return file.type !== "SymbolicLink";
    }
  })

  unzipper.on('error', err => {
    console.log('Error :', err);
    res.send('Error!' + err)
  })

  unzipper.on('extract', (log) => {
    console.log('Extract Completed.', log);
    let list = []
    const directoryPath = req.file.destination;
    console.log('directoryPath :', directoryPath);
    fs.readdir(directoryPath, function (err, files) {
      if (err) {
        console.log('Unable to scan directory: ' + err);
        return list.push(err)
      }
      files.forEach(function (file) {
        console.log(file);
        list.push(file)
      });
      res.send(list)
    });
  })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...