Nest.js 5 正式版发布了,主要改进内容包括: 功能特性core:支持异步生命周期钩子(OnModuleInit和OnModuleDestroy)#569 core:HTTP服务器独立性,fastify 整合(FastifyAdapter) core:允许绑定来自任何模块的全局拦截器,过滤器,管道和看守器。例:
{
provide: APP_INTERCEPTOR,
useClass: LoggerInterceptor,
} core:@UseGuards(),@UsePipes(),@UseFilters(),和@UseInterceptors() 延伸,而不是重写现有的元数据 core:无处不在的注入(管道,过滤器,拦截器和看守器) core:传递 ArgumentsHost 给异常过滤器器(访问每个参数的能力) core:通过增强 ExecutionContext 到拦截器和看守器(访问每个参数和执行上下文的能力) 微服务:重写现有的传输器(TCP,Redis),提供新的策略:Nats,MQTT,gRPC 全部:提高执行上下文性能(http,ws,microservices)
Bug 修复改进全部:删除 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 替换为 fastify (号称最快的 Node.js 框架) 5.0 中文文档:https://docs.nestjs.cn/5.0/firststeps |