53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
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('*');
|
|
}
|
|
}
|