CNode

Nest.js 5 正式版,基于 TypeScript 面向切面编程 的 node.js 框架

分享
Zzuohuadong发布于8 年前最后回复8 年前8 回复5419 浏览0 收藏

Nest.js 5 正式版发布了,主要改进内容包括:

特点

  • core:支持异步生命周期钩子(OnModuleInit和OnModuleDestroy)#569

  • 核心:HTTP服务器独立性,fastify 整合(FastifyAdapter)

  • 核心:允许绑定来自任何模块的全局拦截器,过滤器,管道和看守器。例:

{ 提供:APP_INTERCEPTOR, useClass:LoggerInterceptor, }

  • 核心:@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中间件模式转向每个中间件都被限制在一个特定的路由上,而不管请求方式如何

值得一提的是,这个版本支持将底层的 express 替换为 fastify (最快的 node.js 框架)

5.0 中文文档: https://docs.nestjs.cn/5.0/firststeps

查看回复

回复 (8)

S
soluty#1·8 年前

你好,请问能帮忙解答一下么 https://cnodejs.org/topic/5afd5c5a02591040485baf7f

P
phper-chen#2·8 年前

很可惜使用的公司几乎没有 框架的确很不错

L
lzy2014love#3·8 年前

底层换了,对中间件写法有变化么

来自酷炫的 CNodeMD

C
chenzeZzz#4·8 年前

看好,有拓展项目我会尝试这个框架

Z
zuohuadong#5·8 年前
引用 phper-chen很可惜使用的公司几乎没有 框架的确很不错

@phper-chen 我们去年就开始在用了~

Z
zuohuadong#6·8 年前
引用 lzy2014love底层换了,对中间件写法有变化么 来自酷炫的 CNodeMD

@lzy2014love 基本上没什么变化~底层也不算是换了,只是现在支持 express 和 fastify

Z
zzx0106#7·8 年前

学完egg后看看这个,感觉很强大。

Z
zuohuadong#8·8 年前
引用 zzx0106学完egg后看看这个,感觉很强大。

@zzx0106 融入了spring 思想

参与回复
登录后即可参与回复。登录