@abaccus/koapression 中文文档教程

发布于 5年前 浏览 20 项目主页 更新于 3年前

Koapression

Koa 压缩中间件。

支持以下压缩编码:

  • deflate
  • gzip
  • brotli

Install

这是一个 Node.js 模块,可通过 npm 注册表。 安装是使用 npm install 命令

$ npm install @abaccus/koapression

API

const koapression = require('@abaccus/koapression')

Example

const koapression = require('@abaccus/koapression')
const Koa = require('koa')

const app = new Koa()
app.use(compress({
  filter: function (content_type) {
      return /text/i.test(content_type)
  },
  threshold: 2048,
  flush: require('zlib').Z_SYNC_FLUSH
}))

Options

选项传递给 zlib: http://nodejs.org/api/zlib.html#zlib_options

filter

一个可选函数,检查响应内容类型以决定是否压缩。 默认情况下,它使用可压缩

threshold

要压缩的最小响应大小(以字节为单位)。 默认 1024 字节或 1kb

Manually turning compression on and off

您始终可以通过设置 this.compress = true 来启用压缩。 您始终可以通过设置 this.compress = false 来禁用压缩。 这绕过了过滤器检查。

app.use((ctx, next) => {
  ctx.compress = true
  ctx.body = fs.createReadStream(file)
})

Koapression

Koa Compression middleware.

The following compression codings are supported:

  • deflate
  • gzip
  • brotli

Install

This is a Node.js module available through the npm registry. Installation is done using the npm install command:

$ npm install @abaccus/koapression

API

const koapression = require('@abaccus/koapression')

Example

const koapression = require('@abaccus/koapression')
const Koa = require('koa')

const app = new Koa()
app.use(compress({
  filter: function (content_type) {
      return /text/i.test(content_type)
  },
  threshold: 2048,
  flush: require('zlib').Z_SYNC_FLUSH
}))

Options

The options are passed to zlib: http://nodejs.org/api/zlib.html#zlib_options

filter

An optional function that checks the response content type to decide whether to compress. By default, it uses compressible.

threshold

Minimum response size in bytes to compress. Default 1024 bytes or 1kb.

Manually turning compression on and off

You can always enable compression by setting this.compress = true. You can always disable compression by setting this.compress = false. This bypasses the filter check.

app.use((ctx, next) => {
  ctx.compress = true
  ctx.body = fs.createReadStream(file)
})
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文