monorepo/apps/talk/src/app.module.ts

48 lines
1.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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一个是exportsproviders是用来提供实例的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,
};
}
}