Npm Archiver для замены файла в заархивированной папке - PullRequest
0 голосов
/ 30 апреля 2018

Вот мой API ниже.

app.post('/downloadproject', function(req, res) {

    var projectName = 'web';
    res.set('Content-Type', 'application/zip');
    res.set('Content-Disposition', `attachment; filename=${projectName}.zip`);

    var zip = Archiver('zip');
    var adminZip=require('adm-zip');
    var zipper = new adminZip();
            // Send the file to the page output.
    zip.pipe(res);
    zip.directory(`projects/${projectName}/`, projectName);

    editPom(req.body,function(){
        // zipper.addLocalFile('temp/pom.xml','web/pom.xml');
        zip.file('temp/pom.xml',{name:"web/pom.xml"});
        zip.finalize().then(function(){
            console.log('Zip completed');
        });
    });
});

В приведенном выше вызове API я архивирую папку проекта (используя архиватор в npm), которую мне нужно загрузить в браузере при вызове downloadProject .

В следующей строке я пытаюсь заменить pom.xml локальным файлом pom.xml во время архивирования.

zip.file('temp/pom.xml',{name:"web/pom.xml"});

Но я не могу этого сделать. Это дублирует файл pom.xml.

Оригинальный и скопированный оба остаются в папке.

Может кто-нибудь, пожалуйста, помогите. Заранее спасибо.

...