从 Express 端点下载 zip 存档

Downloading a zip archive from Express endpoint

我有一个简单的问题,但在过去的 2 天里它一直让我抓狂。 我的 node/express 应用程序中有一个 archive.zip 文件,我正尝试通过响应发送该文件。 我的代码非常简单,我有一个端点 /download,它唯一的工作就是 response.download("archive.zip").

但是,在下载文件时(通过浏览器访问 URL),下载了 .zip 存档,但存档中的文件已损坏,我得到错误 Unexpected end of archive.

实际文件是一个完好的、未损坏的存档。我可以毫无问题地在 windows 文件系统上访问它。它只是在传输时被损坏。

我试过设置各种响应头,其中:

Content-Disposition: attachment
Content-Type: application/zip, application/content-stream
Transfer-Encoding: chunked

到目前为止没有任何效果。我在 google / reddit / Whosebug 上进行了广泛的搜索,到目前为止还没有找到解决方案。

感谢您的任何或所有回复。

注意:我正在使用 Express Router(需要('express').Router())

注意 2:我正在尝试下载的简单 zip - http://s000.tinyupload.com/?file_id=06192736420392118369

问题来自错误的异步模式和链接。操作执行顺序不正确,因此我的存档在完成之前就已发送。