如何在NestJS应用中禁用自动生成Etags及获取Express实例
- 首先在NestJS项目的入口文件
main.ts中,调用NestFactory.create完成应用实例初始化后,你可以通过HTTP适配器直接获取底层的Express实例。 - 带类型提示的完整实现代码示例如下:
import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; // 引入NestExpressApplication类型获得更完善的类型提示,非必选 import type { NestExpressApplication } from '@nestjs/platform-express'; async function bootstrap() { // 初始化时指定泛型为NestExpressApplication const app = await NestFactory.create<NestExpressApplication>(AppModule); // 获取底层Express实例并禁用etag const expressApp = app.getHttpAdapter().getInstance(); expressApp.set('etag', false); await app.listen(3000); } bootstrap();
- 如果你不需要额外类型提示,也可以直接简化为如下写法,逻辑完全一致:
import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); // 直接链式调用获取实例并配置 app.getHttpAdapter().getInstance().set('etag', false); await app.listen(3000); } bootstrap();
- 配置完成后启动服务,访问任意接口时响应头中不再返回
ETag字段,即可确认配置生效。
内容的提问来源于stack exchange,提问作者Marc Stroebel
相关产品推荐
相关产品推荐

