NestJS 壓縮

2023-09-08 17:41 更新

壓縮可以大大減小響應(yīng)體的大小,從而提高 Web 應(yīng)用程序的速度。

對于生產(chǎn)中的高流量網(wǎng)站,強(qiáng)烈建議從應(yīng)用程序服務(wù)器卸載壓縮 - 通常在反向代理中(例如 Nginx)。 在這種情況下,我們不應(yīng)該使用壓縮中間件。

與 Express 一起使用(默認(rèn))

使用壓縮中間件包啟用 gzip 壓縮。

首先安裝所需的包:

$ npm i --save compression

安裝完成后,將壓縮中間件應(yīng)用為全局中間件。

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

與 Fastify 一起使用

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

$ npm i --save fastify-compress

安裝完成后,將 fastify-compress 中間件應(yīng)用為全局中間件。

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

默認(rèn)情況下,當(dāng)瀏覽器指示支持編碼時,fastify-compress 將使用 Brotli 壓縮(在 Node >= 11.7.0 上)。 雖然 Brotli 在壓縮率方面非常有效,但它也很慢。 因此,我們可能希望告訴 fastify-compress 僅使用 deflate 和 gzip 來壓縮響應(yīng); 最終會得到更大的響應(yīng),但它們的交付速度會更快。

要指定編碼,請向 app.register 提供第二個參數(shù):

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

上面告訴 fastify-compress 只使用 gzip 和 deflate 編碼,如果客戶端同時支持,則首選 gzip。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號