Какая польза от метода res.attachment () - PullRequest
0 голосов
/ 14 марта 2019

Я хотел добавить функциональность, чтобы пользователь мог пойти по маршруту и ​​загрузить zip . Чтобы сделать zip , я использую архиватор , если я перейду документы архиватор , то первым шагом должно быть, что я делаю поток записи и затем передать его методу zip(output) (вывод - поток записи) , а затем, чтобы загрузить этот файл, я могу использовать res.download(filepath), но я нашел решение, где res.attachment(download.zip) используется, а затем res передается в zip(res), и когда посещается маршрут, заархивированный файл загружается.

Чего я здесь не понял, так это природы res.attachment(). Это работает как поток записи ? Если это произойдет, то в файл будут записаны данные , которые содержит res ?
P.S .: Я прочитал экспресс-документы, но мало информации о attachment() методе

Код

download() {
    const files = this.result.files
    const zip = archiver('zip', {
        zlib: {level: 9}
    })
    const response = this.response

    response.attachment('download.zip')
    zip.pipe(response)

    files.forEach((file) => {
        const filePath = path.join(uploadDir, file.filename)
        zip.file(filePath, {name: file.originalname})
    })

    zip.finalize()
}
...