| 12345678910111213141516171819202122232425262728293031323334 | 'use strict';/** * * * @author Mai * @date * @version */const isJSON = require('koa-is-json');const zlib = require('zlib');module.exports = options => {    return async function gzip(ctx, next) {        await next();        // 后续中间件执行完成后将响应体转换成 gzip        let body = ctx.body;        if (!body) return;        //if (isJSON(body)) return;        // 支持 options.threshold        if (options.threshold && ctx.length < options.threshold) return;        if (isJSON(body)) body = JSON.stringify(body);        // 设置 gzip body,修正响应头        const stream = zlib.createGzip();        stream.end(body);        ctx.body = stream;        ctx.set('Content-Encoding', 'gzip');    };};
 |