【Koa】koa-compress中介軟體的使用-壓縮資料

Milk595發表於2020-10-17

koa-compress中介軟體的使用-壓縮資料

最近在做一個關於新聞的專案,由於傳輸的資料量很大,所以就希望通過壓縮來提高傳輸速度

用到的是koa-compress這個中介軟體,它替我們做了封裝,使用起來很方便

下面看個例子

var Koa = require('koa')
const compress = require('koa-compress');
 
const app = new Koa();
 
app.use(
  compress({
    filter: function(content_type) { // 只有在請求的content-type中有gzip型別,我們才會考慮壓縮,因為zlib是壓縮成gzip型別的
      return /text/i.test(content_type);
    },
    threshold: 1024, // 閥值,當資料超過1kb的時候,可以壓縮
    flush: require('zlib').Z_SYNC_FLUSH // zlib是node的壓縮模組
  })
 
// 使用
app.use((ctx, next) => {
  //ctx 代表響應 ctx.compress = trus 代表允許壓縮
  ctx.compress = true
   ...
})

觀察下沒壓縮和壓縮響應頭和資料大小的區別

不對資料進行壓縮:

在這裡插入圖片描述

壓縮後:

在這裡插入圖片描述

手動開啟和關閉壓縮

您始終可以通過設定啟用壓縮ctx.compress = true。您始終可以通過設定禁用壓縮ctx.compress = false。這繞過了過濾器檢查

在這裡插入圖片描述

相關文章