codecamp

NestJS 压缩

压缩可以大大减小响应体的大小,从而提高 Web 应用程序的速度。

对于生产中的高流量网站,强烈建议从应用程序服务器卸载压缩 - 通常在反向代理中(例如 Nginx)。 在这种情况下,我们不应该使用压缩中间件。

与 Express 一起使用(默认)

使用压缩中间件包启用 gzip 压缩。

首先安装所需的包:

$ npm i --save compression

安装完成后,将压缩中间件应用为全局中间件。

import * as compression from 'compression';
// 在你的初始化文件的某个地方
app.use(compression());

与 Fastify 一起使用

如果使用 FastifyAdapter,你需要使用 fastify-compress:

$ npm i --save fastify-compress

安装完成后,将 fastify-compress 中间件应用为全局中间件。

import compression from 'fastify-compress';
// 在你的初始化文件的某个地方
await app.register(compression);

默认情况下,当浏览器指示支持编码时,fastify-compress 将使用 Brotli 压缩(在 Node >= 11.7.0 上)。 虽然 Brotli 在压缩率方面非常有效,但它也很慢。 因此,我们可能希望告诉 fastify-compress 仅使用 deflate 和 gzip 来压缩响应; 最终会得到更大的响应,但它们的交付速度会更快。

要指定编码,请向 app.register 提供第二个参数:

await app.register(compression, { encodings: ['gzip', 'deflate'] });

上面告诉 fastify-compress 只使用 gzip 和 deflate 编码,如果客户端同时支持,则首选 gzip。


NestJS 事件
NestJS 文件上传
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }