node.js web项目gzip压缩

通常我们的node.js web项目都是通过express框架搭建的。
在express 4.x版本中引入外部中间件compression,然后在其他中间件前面使用此中间件即可(放在其他中间件前面以保证所有的返回都是被压缩的)。

1
2
3
4
5
6
7
8
var compression = require('compression')
var express = require('express')
var app = express()
// compress all requests
app.use(compression())
// add all routes

compression([options])
  • chunkSize: 用来设置使用压缩的最小size,默认是16384,单位是byte,也可以使用'10kb'来显示的指定单位。

      假设compression({chunkSize: '1kb'}),那么当响应大于1kb的时候,服务器会压缩响应数据,并为响应header添加Content-Encoding:gzipTransfer-Encoding:chunked,响应小于的时候不会压缩,也不会添加header。

这个中间件还有很多其他的可配置条件,可以参考其文档