美文网首页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 第三篇

    第三篇 模块 日更挑战第五天,今天为大家介绍一下Nest中最基础的组成模块module,module在Nest算是...

  • 简单学习Nest 6 最终篇

    第六篇 最后一篇 反思篇 今天就做一回标题党和大家一起聊一聊,为什么这是最后一篇了? 最近我一直在反思,我写的这几...

  • 简单学习Nest 6 第四篇

    第四篇 控制器与服务 controller在nest应用中扮演的是路由分配的功能,并且通过调用service来实现...

  • 简单学习Nest 6 第二篇

    日更挑战第四天 第二篇 Nest洋葱模型 Nest与很多的企业级开发框架一样都采用了一个与洋葱很相似的洋葱模型,那...

  • 简单学习Nest 6 第五篇

    第五篇 守卫 今天我们一起学习一下nest中的守卫Guard,通过守卫我们可以将代码里的认证、权限部分进行进行分离...

  • 【Nest 极速指南】基础篇

    这篇文章你会学习到: 什么是 Nest 开发环境 & 安装 Hello World 什么是 Nest Nest 是...

  • 简单学习Nest 6 第一篇

    前言 ​ hello,大家好又是美好的一天,可惜病毒肆虐,首先说一句武汉加油、中国加油,相信在国家的努...

  • nest入门

    1.什么事nest.js 2.nest安装 下面就是nest项目的目录 3.nest执行 这样一个nest的基础项...

  • NEST学习(一)

    Nest(NestJS) -- A progressive Node.js framework[https://d...

  • 极课编程-Nestjs的设计思想和基本使用方法

    参考文档 Nest.js中文文档 https://docs.nestjs.cn/6/introduction 最近...

网友评论

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

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