V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zuohuadong
V2EX  ›  Node.js

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

  •  
  •   zuohuadong · 2018-05-15 11:40:24 +08:00 · 4626 次点击
    这是一个创建于 2384 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

    5 条回复    2018-05-17 13:07:09 +08:00
    9ki
        1
    9ki  
       2018-05-15 17:52:47 +08:00
    关注很久了,很适合 ng 开发者上手
    9ki
        2
    9ki  
       2018-05-15 17:55:16 +08:00
    ??? notadd
    IvanLi127
        3
    IvanLi127  
       2018-05-15 19:17:58 +08:00 via Android
    最后一点,替换底层了?我印象中不是可选吗?
    beginor
        4
    beginor  
       2018-05-15 21:37:23 +08:00 via Android
    不错, 确实很有 ng 的味道, 已 star
    zuohuadong
        5
    zuohuadong  
    OP
       2018-05-17 13:07:09 +08:00
    @IvanLi127 一个意思,支持替换
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1307 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:53 · PVG 01:53 · LAX 09:53 · JFK 12:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.