压缩(gzip)在NestJS中无法工作

7

使用命令nest new project-name创建标准的NestJS项目。之后,我安装了压缩插件npm i --save compression并将其插入到项目中。

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as compression from 'compression';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.use(compression());
  await app.listen(3000);
}
bootstrap();

但压缩不起作用,响应中没有 gzip

浏览器中的响应

我已经尝试清除缓存,重新启动浏览器,但都没有起作用。

谢谢帮助。


1
您可以通过定义 DEBUG=compression* 环境变量来调试它。 - Micael Levi
2个回答

3

首先,安装以下软件包:

npm i --save compression

main.ts 文件中的 bootstrap function 中,按照以下方式应用 compression middleware
async function bootstrap() {
  const app: INestApplication = await NestFactory.create(AppModule);
  ...
  app.use(compression({
    filter: () => { return true },
    threshold: 0
  }));

  ...
  await app.listen(4100);
}

接下来,您将看到结果

在此输入图片描述

注意

Control+Shift+RShift + F5 = 重新加载当前页面,忽略缓存内容。


0

如果其他方法都不起作用:

  const expressApp = express();
  expressApp.use(compression());
  const expressAdapter = new ExpressAdapter(expressApp);
  const app = await NestFactory.create(AppModule, expressAdapter);
  await app.listen(3000);

还是不行。也许我没有正确地使用压缩来运行项目?我是这样运行的:npm build npm start:prod - senior_script

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接