# 模块
- 概述:模块是带有
@Module()装饰器的类。 - 使用cli创建控制器
nest g mo module_name --no-spec --flat
@Module()装饰器接受一个单一的对象做为参数
| 参数名 | 描述 |
|---|---|
providers | 将由Nest注入器实例化并且至少可以在该模块中共享的提供程序。 |
controllers | 此模块中定义的所有控制器。 |
imports | 此模块所需的提供程序的导入模块列表。 |
exports | 这个模块提供的providers的子集(需要存在providers中),配置之后可以在引入此模块的其他模块中可用。 |
/* test.module.ts */
import { Module } from '@nestjs/common'
import { TestController } from './test.controller.ts'
import { TestService } from './test.service.ts'
@Module({
controllers: [TestController],
providers: [TestService]
})
export class TestModule {}
# exports
- 概述:如果需要再模块之间共享
Service,需要将其添加到模块的exports数组中
/* test.module.ts */
import { Module } from '@nestjs/common'
import { TestController } from './test.controller.ts'
import { TestService } from './test.service.ts'
@Module({
controllers: [TestController],
providers: [TestService],
exports: [TestService]
})
export class TestModule {}
# 全局模块
- 概述:可以使用
Global()装饰器使得模块全局化。
/* test.module.ts */
import { Module, Global } from '@nestjs/common'
import { TestController } from './test.controller.ts'
import { TestService } from './test.service.ts'
@Global()
@Module({
controllers: [TestController],
providers: [TestService]
})
export class TestModule {}