Nest.js 5 正式版,基於 TypeScript 面向切面編程 的 node.js 微服務框架

Nest.js 5 正式版發佈了,主要改進內容包括:node

特色

  • core:支持異步生命週期鉤子(OnModuleInit和OnModuleDestroy)#569
  • 核心:HTTP服務器獨立性,fastify 整合(FastifyAdapter)
  • 核心:容許綁定來自任何模塊的全局攔截器,過濾器,管道和看守器。例:

    { 提供:APP_INTERCEPTOR, useClass:LoggerInterceptor, }webpack

  • 核心:@UseGuards(),@UsePipes(),@UseFilters(),和@UseInterceptors() 延伸,而不是重寫現有的元數據
  • 核心:無處不在的注入(管道,過濾器,攔截器和看守器)
  • 核心:傳遞 ArgumentsHost 給異常過濾器器(訪問每一個參數的能力)
  • 核心:經過加強 ExecutionContext 到攔截器和看守器(訪問每一個參數和執行上下文的能力)
  • 微服務:重寫現有的傳輸器(TCP,Redis),提供新的策略:Nats,MQTT,gRPC
  • 所有:提升執行上下文性能(http,ws,microservices)

Bug修復

  • 普通:移除 multer 依賴#532
  • 核心:懸掛 NestApplicationContext 過程#503
  • 微服務:併發問題(包括TCP和Redis傳輸器)#505

改進

  • 所有:刪除 reflect-metadata 依賴關係#563
  • 所有:將 RxJS 升級到6.0.0
  • all:升級Node.js> = 8.9.0(TypeScript目標es2017)
  • 核心:更多描述性例外(循環依賴)#493
  • 核心:與useContainer()(class-validator和typeorm封裝)#528兼容的嵌套容器
  • 核心:移除靜態依賴(webpack兼容性)
  • websockets:@WebSocketGateway()接受傳遞給socket.io實例#508的選項參數

棄用

  • 通用:棄用@Component(),@Middleware(),@Interceptor(),@Pipe(),和@Guard()裝飾器(使用@Injectable()替代)
  • 常見:刪除ExpressMiddleware(使用MiddlewareFunction)
  • 核心:棄用modules: [](使用imports: [] )
  • 核心:棄用components: [](使用providers: [])
  • 核心:刪除MiddlewaresConsumer(使用MiddlewareConsumer)

筆記

從傳統的 express中間件模式轉向每一箇中間件都被限制在一個特定的路由上,而無論請求方式如何web

值得一提的是,這個版本支持將底層的 express 替換爲 fastify (最快的 node.js 框架)express

5.0 中文文檔: https://docs.nestjs.cn/5.0/fi...服務器

相關文章
相關標籤/搜索