📜  如何在 Node.js 中使用 Gzip 进行压缩?

📅  最后修改于: 2022-05-13 01:56:37.654000             🧑  作者: Mango

如何在 Node.js 中使用 Gzip 进行压缩?

以下方法介绍了如何在 Node.js 中使用 Gzip 压缩进行压缩。我们可以使用压缩模块来使用 Gzip 压缩进行压缩。 Gzip 是使用最广泛的压缩,尤其是对于服务器和客户端交互。

压缩有助于减少我们的 NodeJS 应用程序中的可下载数据量,并提高应用程序的性能。这种压缩过程可以将有效载荷大小显着降低 70% 以上。

以下两个示例介绍了压缩如何有用,因为与示例 1 相比,它减少了有效负载大小,在示例 2 中清晰可见。

示例 1:使用不压缩:

第 1 步:使用以下命令创建一个空的 NodeJS 应用程序:

mkdir Project 
cd Project
npm init -y

第 2 步:使用以下命令安装 ExpressJS 模块:

npm i express --save

第 3 步:在项目的根目录中创建一个文件并命名为index.js并编写以下代码。

index.js
const express = require('express');
const app = express();
  
// It will repeatedly the word 'I love GeeksforGeeks'
const data = ('I love GeeksforGeeks').repeat(800) ;
  
app.get('/', (req, res) => {
  // Send as 'text/html' format file
  res.send(data);
});
  
// Server setup
app.listen(8080, function () {
  console.log('Server listening on port 8080!');
});


index.js
// Initialize compression module
const compression = require('compression');
const express = require('express');
const app = express();
  
// Compress all HTTP responses
app.use(compression());
  
// It will repeatedly the word 'I love GeeksforGeeks'
const data = ('I love GeeksforGeeks').repeat(800) ;
  
app.get('/', (req, res) => {
  // Send as 'text/html' format file
  res.send(data);
});
  
// Server setup
app.listen(8080, function () {
  console.log('Server listening on port 8080!');
});


使用以下命令运行index.js文件:

node index.js

打开浏览器,访问 URL http://localhost:8080/,如果不进行压缩,服务器返回的响应会重约 16 kB,如下图:

示例 2:使用 Gzip 压缩:

在 NodeJS 应用程序的index.js文件中添加压缩中间件。这将启用 GZIP,从而使您的 HTTP 响应更小。

第 1 步:使用以下命令创建一个空的 NodeJS 应用程序:

mkdir Project
cd Project
npm init -y

第 2 步:使用以下命令安装压缩和 ExpressJS 模块:

npm install compression --save
npm install express --save

第 3 步:在项目的根目录中创建一个文件并命名为index.js并编写以下代码。

index.js

// Initialize compression module
const compression = require('compression');
const express = require('express');
const app = express();
  
// Compress all HTTP responses
app.use(compression());
  
// It will repeatedly the word 'I love GeeksforGeeks'
const data = ('I love GeeksforGeeks').repeat(800) ;
  
app.get('/', (req, res) => {
  // Send as 'text/html' format file
  res.send(data);
});
  
// Server setup
app.listen(8080, function () {
  console.log('Server listening on port 8080!');
});

使用以下命令运行index.js文件:

node index.js

打开浏览器,访问 URL http://localhost:8080/,现在,如果打开压缩,服务器返回的响应将重约 371 字节,如下所示:

因此,上面的示例表明使用压缩响应大小会显着减小。