import { MiddlewareConsumer, Module, NestModule, RequestMethod, } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { UsersModule } from './users/users.module'; import { PrismaModule } from '@/prisma/prisma.module'; import { AccountsModule } from './accounts/accounts.module'; import { AuthModule } from './auth/auth.module'; import { RedisModule } from '@liaoliaots/nestjs-redis'; import { CacheService } from './cache.service'; import { LoggerMiddleware } from '@/src/middleware/logger.middleware'; import { DiscoveryModule } from '@nestjs/core'; const redisConfig = { host: '10.10.2.15', port: 6379, password: 'your_strong_password_here', }; const modulesList = [UsersModule, AccountsModule, AuthModule]; const serviceModuleList = [ PrismaModule, RedisModule.forRoot({ config: redisConfig, }), DiscoveryModule, ]; const controllersList = [AppController]; const providersList = [AppService, CacheService]; const exportsList = [CacheService]; @Module({ imports: [...serviceModuleList, ...modulesList], controllers: controllersList, providers: providersList, exports: exportsList, }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer .apply(LoggerMiddleware) .exclude( { path: 'accounts', method: RequestMethod.ALL }, { path: 'users/*path', method: RequestMethod.ALL }, ) .forRoutes('*'); } }