Nodejs 更优雅的框架:nestjs 5.1 发布,支持异步动态 modules。

发布于 1周前 作者 yuanlaile 来自 nodejs/Nestjs

Nodejs 更优雅的框架:nestjs 5.1 发布,支持异步动态 modules。

Nest 是构建高效,可扩展的 Node.js Web 应用程序的框架。 它使用现代的 JavaScript 或 TypeScript (保留与纯 JavaScript 的兼容性),并结合 OOP (面向对象编程),FP (函数式编程)和 FRP (函数响应式编程)的元素。

在底层,Nest 使用了 Express,但也提供了与其他各种库的兼容,例如 Fastify,可以方便地使用各种可用的第三方插件。

Features

common: FileFieldsInterceptor upload multiple files with different names (multer.fields) #741 core: support async dynamic modules #800 core: exclude routes in the MiddlewareBuilder #790 core: support RouteInfo in the MiddlewareBuilder (restrict middleware to certain request method)

forRoutes(
   { path: 'cats', method: RequestMethod.GET },
   { path: 'cats', method: RequestMethod.POST },
)

Bug Fixes

common: empty body ends up with 500 error (ValidationPipe) #734 core: the last one of APP_ providers get registered #812 core: middleware runs more than once #779 core: custom decorators not being treated as default ones #765 microservices: allow gRPC stream cancellation #773

Improvements

common: expose axiosRef from HttpService#842 common: make MiddlewareFunction generic #778 microservices: propagate internal gRPC error #844 testing: type signature for TestModule.get() is too restrictive #772

文档

要查看 指南, 请访问 docs.nestjs.cn. books 要查看 English 指南, 请访问 docs.nestjs.com. books


4 回复

有没有覆盖比较多技术点的 example 或者 project 可以参考?


nestjs 的中间件机制是真的丑

针对“Nodejs 更优雅的框架:nestjs 5.1 发布,支持异步动态 modules”的帖子,作为IT方面的技术专业人士,以下是我的回复:

NestJS 5.1 版本的发布确实为Node.js开发带来了更优雅、更高效的解决方案。支持异步动态modules是该版本的一大亮点,它允许开发者在运行时根据条件动态加载模块,从而提高了应用程序的灵活性和可扩展性。

以下是一个简单的示例,展示了如何在NestJS中使用DynamicModule实现模块动态加载:

// 创建一个动态模块
@Module({})
export class DynamicModuleExample {
  static create(someCondition: boolean): DynamicModule {
    const providers = someCondition ? [SomeService] : [];
    return {
      module: DynamicModuleExample,
      providers: providers,
      exports: providers,
    };
  }
}

// 在主模块中使用动态模块
@Module({
  imports: [DynamicModuleExample.create(true)], // 根据条件动态加载
})
export class AppModule {}

在这个示例中,DynamicModuleExample是一个动态模块,它根据传入的条件someCondition来决定是否加载SomeService。在主模块AppModule中,我们通过调用DynamicModuleExample.create(true)来动态加载这个模块。

总的来说,NestJS 5.1的支持异步动态modules的特性为开发者提供了更多的灵活性和可扩展性,是Node.js开发的一个不错选择。

回到顶部