KoaJS 压缩

  • 定义和使用

    压缩是一种简单、有效的方法,可以节省带宽并加快站点速度。它只与现代浏览器兼容,如果用户也使用传统浏览器,则应谨慎使用。
    当从服务器发送响应时,如果使用压缩,则可以大大缩短加载时间。我们将使用一个名为 koa-compress 的中间件来处理文件的压缩以及设置适当的头文件。
    继续使用−安装中间件
    $ npm install --save koa-compress
    
  • 示例

    现在在你的 app.js 文件,添加以下代码–
    var koa = require('koa');
    var router = require('koa-router');
    var app = new koa();
    
    var _router = router();
    var Pug = require('koa-pug');
    var pug = new Pug({
        viewPath: './views',
        basedir: './views',
        app: app //Equivalent to app.use(pug)
    });
    
    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的压缩模块
    }))
    
    
    _router.get('/', async (ctx)=>{
        ctx.render('index');
    });
    
    app.use(_router.routes());
    app.listen(3001);