Appearance
koa-compress
简介
koa-compress 是一个用于压缩 HTTP 响应数据的中间件,支持 gzip、deflate 和 br(Brotli)压缩算法。通过压缩响应数据,可以显著减少传输数据的大小,提高网站性能。
安装
bash
npm install koa-compress基本使用
javascript
const Koa = require('koa');
const compress = require('koa-compress');
const app = new Koa();
// 注册中间件
app.use(compress());
app.use(async (ctx) => {
ctx.body = { message: '这个响应将被压缩' };
});
app.listen(3000);高级配置
javascript
const Koa = require('koa');
const compress = require('koa-compress');
const app = new Koa();
app.use(compress({
// 启用阈值,当响应体大小超过该值时才会启用压缩
threshold: 2048, // 2kb
// 压缩级别 (0-9),级别越高压缩比越大,但CPU消耗也越大
level: 6,
// 指定要压缩的响应类型
filter: function (content_type) {
return /text|javascript|json|xml|html/i.test(content_type);
},
// 配置压缩算法的优先级
br: false, // 禁用 Brotli 压缩
gzip: {
flush: require('zlib').constants.Z_SYNC_FLUSH
},
deflate: {
flush: require('zlib').constants.Z_SYNC_FLUSH
}
}));
app.use(async (ctx) => {
ctx.body = {
message: '这是一个大型响应',
data: '...大量数据...'
};
});
app.listen(3000);注意事项
- 不要对图片、视频等已经压缩过的文件再次进行压缩
- 合理设置压缩阈值,避免对小文件进行不必要的压缩
- 根据服务器CPU资源选择合适的压缩级别
- 在反向代理(如 Nginx)已经配置了压缩的情况下,可以考虑不在应用层做压缩