Какая польза от метода res.attachment()
Я хотел добавить функциональность, где пользователь может пойти по маршруту и скачать почтовый индекс. Чтобы сделать zip, я использую архиватор, если я просматриваю документы архиватора, то первым делом я должен сделать поток записи и затем передать его zip(output)
метод (выходной поток записи), а затем, чтобы загрузить этот файл, я могу использовать res.download(filepath)
но я нашел решение, где res.attachment(download.zip)
используется, а затем Res передается в zip(res)
и когда маршрут посещен, заархивированный файл загружается.
То, что я не понял здесь, это природа res.attachment()
, Это работает как поток записи? Если это произойдет, то будут ли данные, содержащиеся в res, также записаны в файл?
PS: я прочитал документацию по экспрессу, но мало информации о 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()
}