UNPKG

create-chuntianxiaozhu

Version:

春天小猪模板工具

122 lines (119 loc) 3.62 kB
import { Logger, MiddlewareConsumer, Module, NestModule, OnModuleInit, } from '@nestjs/common'; import { CommonModule } from './common/common.module'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ConfigModule } from '@nestjs/config'; import { JwtModule } from '@nestjs/jwt'; import { AuthGuard } from './guards/auth.guard'; import { AuthModule } from './modules/auth/auth.module'; import { UserModule } from './modules/user/user.module'; import { AppController } from './app.controller'; import { CacheModule } from '@nestjs/cache-manager'; import { RolesGuard } from './guards/role.guard'; import { ThrottlerProxyGuard } from './guards/throttler.guard'; import { APP_GUARD } from '@nestjs/core'; import { ThrottlerModule } from '@nestjs/throttler'; import { ScheduleModule } from '@nestjs/schedule'; import { TicketsModule } from './modules/tickets/tickets.module'; import { OssModule } from './modules/oss/oss.module'; import { OrderModule } from './modules/order/order.module'; import { SettlementModule } from './modules/settlement/settlement.module'; import { ShortUrlModule } from './modules/short-url/short-url.module'; import { AppSchedule } from './schedules/app-schedule'; import { CorsMiddleware } from './middlewares/cors.middleware'; import { CorsController } from './cors.controller'; import { AiModule } from './modules/ai/ai.module'; import { EmailModule } from './modules/email/email.module'; @Module({ imports: [ // 这个一定要放在最前面,读取环境配置 ConfigModule.forRoot({ envFilePath: 'environment.properties', }), ScheduleModule.forRoot(), JwtModule.register({ global: true, secret: process.env.JWT_SECRET, signOptions: { expiresIn: '7d' }, }), TypeOrmModule.forRoot( process.env.ENV == 'dev' ? { type: 'mysql', host: process.env.DATABASE_HOST, port: 3306, username: process.env.DATABASE_USER, password: process.env.DATABASE_PASSWORD, database: 'wecanplugin', synchronize: true, autoLoadEntities: true, logging: true, logger: 'file', entityPrefix: 'wecan_', dateStrings: true, } : { type: 'mariadb', host: process.env.DATABASE_HOST, port: 3306, username: process.env.DATABASE_USER, password: process.env.DATABASE_PASSWORD, database: 'wecanplugin', synchronize: true, autoLoadEntities: true, entityPrefix: 'wecan_', dateStrings: true, }, ), CacheModule.register({ isGlobal: true, }), // 60秒内最多10个请求 ThrottlerModule.forRoot({ ttl: 60, limit: 10, }), CommonModule, AuthModule, UserModule, TicketsModule, OssModule, OrderModule, SettlementModule, ShortUrlModule, AiModule, EmailModule, ], controllers: [AppController, CorsController], providers: [ { provide: APP_GUARD, useClass: AuthGuard, }, { provide: APP_GUARD, useClass: RolesGuard, }, { provide: APP_GUARD, useClass: ThrottlerProxyGuard, }, AppSchedule, ], }) export class AppModule implements NestModule, OnModuleInit { constructor() {} configure(consumer: MiddlewareConsumer) { // 配置中间件 Logger.log('注册跨域中间件'); consumer.apply(CorsMiddleware).forRoutes('/c/*'); } async onModuleInit() { Logger.log('初始化数据仓库'); } }