IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    新手入门Nest.js(十四)- Modules

    Durban发表于 2020-10-24 17:18:34
    love 0

    新手入门,了解Nest.js的Modules

    在Nest.js中,一个带有@Module()装饰器的类,即是一个Module

    每个Application都至少有一个Module,root module

    同时Nest.js强烈建议使用一个Module作为一个有效的方式来管理你的组件

    下面看下如何创建一个Module

    创建一个module

    创建module的命令如下

    nest g module cats

    运行后结果如下

    $ nest g module cats
    CREATE src/cats/cats.module.ts (81 bytes)
    UPDATE src/app.module.ts (603 bytes)

    创建后默认的代码如下

    import { Module } from '@nestjs/common';
    
    @Module({})
    export class CatsModule {}
    

    使用module

    下面修改下cats.module.ts,修改后的结果如下

    import { Module } from '@nestjs/common';
    import { CatsController } from './cats.controller';
    import { CatsService } from './cats.service';
    
    @Module({
      controllers: [CatsController],
      providers: [CatsService],
    })
    export class CatsModule {}
    

    同时需要修改下app.module.ts

    import { Module } from '@nestjs/common';
    import { AppController } from './app.controller';
    import { AppService } from './app.service';
    import { AccountController } from './account/account.controller';
    import { DogsController } from './dogs/dogs.controller';
    import { CatsModule } from './cats/cats.module';
    
    @Module({
      imports: [CatsModule],
      controllers: [AppController, AccountController, DogsController],
      providers: [AppService],
    })
    export class AppModule {}
    

    跟没有使用cats.module.ts的时候对比下

    import { Module } from '@nestjs/common';
    import { AppController } from './app.controller';
    import { AppService } from './app.service';
    import { CatsController } from './cats/cats.controller';
    import { AccountController } from './account/account.controller';
    import { DogsController } from './dogs/dogs.controller';
    import { CatsService } from './cats/cats.service';
    import { CatsModule } from './cats/cats.module';
    
    @Module({
      imports: [CatsModule],
      controllers: [AppController, CatsController, AccountController, DogsController],
      providers: [AppService, CatsService],
    })
    export class AppModule {}

    可以发现少了对应的CatsController,CatsService

    从这个方面可以看出 Nest.js的代码体现了SOLID原则,对代码的维护是很有帮助的。



沪ICP备19023445号-2号
友情链接