48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import { Global, Logger, Module, ValidationPipe } from "@nestjs/common";
|
||
import { APP_PIPE } from "@nestjs/core";
|
||
|
||
import { ConfigModule } from "./common/config/config.module";
|
||
import { database } from "./config/database.config";
|
||
import { Configure } from "./modules/config/configure";
|
||
import { CoreModule } from "./modules/core/core.module";
|
||
import { DatabaseModule } from "./modules/database/database.module";
|
||
import { FileMOdule } from "./modules/file/file.module";
|
||
import { UserModule } from "./modules/user/user.module";
|
||
import { EventsGateway } from "./websocket/events.gateway";
|
||
|
||
// 当providers 为空时,就会从di容器从import的模块中查找->其他模块需要两个部分一个是providers,一个是exports,providers是用来提供实例的,exports是用来导出模块的
|
||
// 第二种直接在当前providers中导入其他模块的providers,然后在当前模块的providers中导入其他模块的exports,这样就可以实现模块间的依赖注入
|
||
@Global()
|
||
@Module({})
|
||
export class AppModule {
|
||
static forRoot(configure: Configure) {
|
||
return {
|
||
module: AppModule,
|
||
imports: [
|
||
DatabaseModule.forRoot(database(configure)),
|
||
UserModule.forRoot(configure),
|
||
ConfigModule.forRoot(),
|
||
CoreModule.forRoot(configure),
|
||
FileMOdule.forRoot(),
|
||
],
|
||
controllers: [],
|
||
exports: [
|
||
{
|
||
module: Logger,
|
||
global: true,
|
||
},
|
||
],
|
||
providers: [
|
||
Logger,
|
||
|
||
{
|
||
provide: APP_PIPE,
|
||
useValue: new ValidationPipe({ transform: true, whitelist: true }),
|
||
},
|
||
EventsGateway,
|
||
],
|
||
global: true,
|
||
};
|
||
}
|
||
}
|