feat: integrate Redis and Database modules with necessary dependencies

This commit is contained in:
Boris D
2025-09-22 13:14:19 +03:00
parent 72b020b9f7
commit 5ffb9f3d9c
6 changed files with 169 additions and 14 deletions

View File

@ -1,10 +1,11 @@
import { Module } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm";
import { ConfigModule } from "@nestjs/config";
import { TestModule } from "../test/test.module";
import { ApiModule } from "../api/api.module";
import { QueryModule } from "src/query/query.module";
import { ProjectModule } from "src/project/project.module";
import { RedisModule } from "src/redis/redis.module";
import { DatabaseModule } from "src/database/database.module";
@Module({
imports: [
@ -12,19 +13,8 @@ import { ProjectModule } from "src/project/project.module";
isGlobal: true,
envFilePath: ".env",
}),
TypeOrmModule.forRoot({
type: "mariadb",
host: process.env.DB_HOST || "localhost",
port: parseInt(process.env.DB_PORT) || 3306,
username: process.env.DB_USERNAME || "root",
password: process.env.DB_PASSWORD || "",
database: process.env.DB_DATABASE || "low_code_engine",
entities: [__dirname + "/../**/*.entity{.ts,.js}"],
migrations: [__dirname + "/../migrations/*{.ts,.js}"],
synchronize: false,
migrationsRun: process.env.NODE_ENV === "production",
autoLoadEntities: true,
}),
DatabaseModule,
RedisModule,
ApiModule,
ProjectModule,
QueryModule,

View File

@ -0,0 +1,22 @@
import { Module } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm";
@Module({
imports: [
TypeOrmModule.forRoot({
type: "mariadb",
host: process.env.DB_HOST || "localhost",
port: parseInt(process.env.DB_PORT) || 3306,
username: process.env.DB_USERNAME || "root",
password: process.env.DB_PASSWORD || "",
database: process.env.DB_DATABASE || "low_code_engine",
entities: [__dirname + "/../**/*.entity{.ts,.js}"],
migrations: [__dirname + "/../migrations/*{.ts,.js}"],
synchronize: false,
migrationsRun: process.env.NODE_ENV === "production",
autoLoadEntities: true,
}),
],
exports: [TypeOrmModule],
})
export class DatabaseModule {}

18
src/redis/redis.module.ts Normal file
View File

@ -0,0 +1,18 @@
import { Module } from "@nestjs/common";
import { RedisModule as NestRedisModule } from "@liaoliaots/nestjs-redis";
import { RedisClient } from "./redis.service";
@Module({
imports: [
NestRedisModule.forRoot({
config: {
host: process.env.REDIS_HOST || "localhost",
port: parseInt(process.env.REDIS_PORT) || 6379,
password: process.env.REDIS_PASSWORD || "authpassword",
},
}),
],
providers: [RedisClient],
exports: [RedisClient],
})
export class RedisModule {}

View File

@ -0,0 +1,12 @@
import { RedisService } from "@liaoliaots/nestjs-redis";
import { Injectable } from "@nestjs/common";
import Redis from "ioredis";
@Injectable()
export class RedisClient {
private readonly redis: Redis | null;
constructor(private readonly redisService: RedisService) {
this.redis = this.redisService.getOrThrow();
}
}