美文网首页Nest.js
简单学习Nest 6 第三篇

简单学习Nest 6 第三篇

作者: 爱写Bug的程序猿 | 来源:发表于2020-02-15 11:41 被阅读0次

    第三篇 模块

    日更挑战第五天,今天为大家介绍一下Nest中最基础的组成模块modulemodule在Nest算是中枢吧,他管理着每个servicecontroller

    通过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咱们明天见。

    咱们明天见。

    相关文章

      网友评论

        本文标题:简单学习Nest 6 第三篇

        本文链接:https://www.haomeiwen.com/subject/iiyefhtx.html