模块之间相互调用
需要在module中配置exports
创建一个user模块
nest g res user
user.module.ts中添加export
exports:[
UserService
]
app.module.ts中添加imports
imports: [Config.init('abc'), UserModule],
于是乎就可以在 app模块中使用user模块的service
import { Controller, Get, Inject } from '@nestjs/common';
import { AppService } from './app.service';
import { UserService } from './user/user.service';
@Controller()
export class AppController {
// 引入user模块中的 UserService
constructor( private readonly userService:UserService) {}
@Get()
getHello(): string {
return this.userService.findAll();
}
}
模块可以用了作为配置类
import { Module } from "@nestjs/common";
@Module({
providers:[
{
provide:'basePath',
useValue:'api'
}
],
exports:[
{
provide:'basePath',
useValue:'api'
}
]
})
export class Config2{
}
controller中使用配置
@Controller('user')
export class UserController {
constructor(private readonly userService: UserService,
@Inject('basePath')private readonly config) {}
@Post()
create(@Body() createUserDto: CreateUserDto) {
console.log(this.config)
return this.userService.create(createUserDto);
}
}
也可以动态传参
import { DynamicModule, Module } from "@nestjs/common";
@Module({
})
export class Config2{
static init(option:string):DynamicModule{
return{
module:Config2,
providers:[
{
provide:'basePath',
useValue:'api/' + option
}
],
exports:[
{
provide:'basePath',
useValue:'api/' + option
}
]
}
}
}
user模块中引入
imports:[Config2.init('abc')],