简单学习Nest 6 第三篇

第三篇 模块 日更挑战第五天,今天为大家介绍一下Nest中最基础的组成模块module,module在Nest算是中枢吧,他管理着每个service和controller。 通过module可以很方便的将这些写好的功能的service导出,并且加载controller来实现路由的功能。而且module可以将service注入到cotroller中,来调用service中的方法和属性。 注入:全称依赖注入,是Nest在内部自动的将一个类实力化到另一类的属性里,这就是依赖注入DI。而Nest中做这件事情的核心功能就是Module类修饰器。 Modules 如上图所示,每个module直接也是可以互相导入导出的,不过这里有个问题需要注意以下,尽量不要循环导入,比如AModule导入BModule,BModule导入AModule,虽然这样有解决方案可以循环导入,但是这样会产生不必要的浪费。 项目目录 hellowrold 从图中我们可以看出整个项目有三个模块: app.module 根模块 user.module 用户业务模块 admin.module 后台管理模块 代码分析 // app.module.ts import { Module } from '@nestjs/common'; // 导入nest核心类的装饰器Module import { UserModule } from './user/user.module'; import { AdminModule } from './admin/admin.module'; // 导入写好的两个模块 @Module({ imports: [UserModule, AdminModule], // 注册到AppMoudule }) export class AppModule { } // Module装饰器必须写在类的上方 // admin.module.ts import { Module } from '@nestjs/common'; import { AdminService } from './admin.service'; import { AdminController } from './admin.controller'; @Module({ providers: [AdminService], // 注册在该模块中需要提供功能的服务,在这里注册后,可以在该模块中随意导入 controllers: [AdminController] // 加载控制器 }) export class AdminModule {} // user.module.ts import { Module } from '@nestjs/common'; import { UserService } from './user.service'; import { UserController } from './user.controller'; @Module({ providers: [UserService], controllers: [UserController] }) export class UserModule {} Module装饰器详细介绍 @Module({ imports:[], // 导入一个或多个模块或服务 providers:[], // 注册一个或多个服务到整个模块内 controllers:[], // 加载一个或多个控制器 exports:[] // 导出一个或多个模块或服务,导出所有的服务直接将自己导出即可实现 }) export class XXX{} 今天的模块就介绍到这里,明天介绍控制器和服务这两个。 该项目的所有代码我已经发布到Git上了,地址:https://github.com/holleworldabc/nest-helloworld 最后关注、点赞、收藏,每天都会更新新的文章。 ByBy咱们明天见。 咱们明天见。

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):