Узел Извлечение асинхронного файла zip с помощью обратных вызовов или событий?

Я должен написать модуль, задача которого - извлечь ZIP-файл с двумя параметрами (zip file's path, directory where to extract's path) который должен предоставить метод для выполнения задачи, а затем вызвать другую задачу, если операция прошла успешно.

Моя главная проблема: должен ли я использовать шаблон проектирования обратного вызова или наблюдаемый источник событий?

По сути, мне интересно, должен ли я выставить объект, который расширяет модуль событий, который можно было бы наблюдать на чем-то вроде extraction-complete событие Или, если я должен использовать callback(err, 'ok') если это успешно.

Каков был бы умный подход между этими двумя образцами?

Моя цель - разархивировать файл, затем просмотреть содержимое извлеченного архива и записать некоторую информацию в базу данных из извлеченных папок. Папка представляет собой ZIP-файл, состоящий из папок с изображениями в нем и имеет около 600 записей

1 ответ

Вы можете использовать эту команду для установки сначала распаковать:

npm install unzip

затем используйте следующий код:

var unzip = require('unzip');

var stream = fs.createReadStream('/tmp/file.zip');
stream.pipe(unzip.Extract({ path: '/dest' })
    .on('close', function () {
        // Your callback code will go here...
    })
);
Другие вопросы по тегам