在 WEB 的層面上使用壓縮檔案功能,無非也是要為下載檔案做好準備。一次過下載多個檔案在現今的瀏覽概念還是使用打包的方法比較好,或是如果能下載一個 FOLDER 也是一個不錯的方向 (可惜沒有)。 ### 壓縮檔案 要達成把檔案壓縮,最方便也是問 NPM 大神找找有沒有人寫好的 ! https://www.npmjs.com/package/adm-zip  過去一星期 160 萬次數下載,非常可靠的樣子。 這個 Library 可以讀取 ZIP 檔案的內容,也可以把檔案加入到 ZIP 檔案內,是一個完整雙向的 Library,而且方便易用。 當中有一個能力是非常強勢的,就是它可以把 Zip 檔案直接輸出為 Buffer。意味著可以一邊打包一邊輸出? 還需要試一試... ```js // creating archives var zip = new AdmZip(); // add local file zip.addLocalFile("/home/me/some_picture.png"); // get everything as a buffer var willSendthis = zip.toBuffer(); // or write everything to disk zip.writeZip(/*target file name*/"/home/me/files.zip"); ``` 如果是使用 KOA 的話,就可以直接用以下語法輸出到 `response` : ```js // zip buffer to response ctx.body = zip.toBuffer(); ``` 非常方便 !!