Skip to content

Commit

Permalink
fix: 터널링 비동기 문제 fix
Browse files Browse the repository at this point in the history
  • Loading branch information
SeongHyeon0409 authored and SeungGwan123 committed Nov 21, 2024
1 parent edac18d commit 854f9e0
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 13 deletions.
6 changes: 2 additions & 4 deletions packages/server/src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import getTypeOrmConfig from './configs/typeorm.config';
import { HealthModule } from './health/health.module';
import { AccountModule } from './account/account.module';
import { TradeModule } from './trade/trade.module';
import { setupSshTunnel } from './configs/ssh-tunnel';
import { RedisModule } from './redis/redis.module';

@Module({
Expand All @@ -18,9 +17,8 @@ import { RedisModule } from './redis/redis.module';
AccountModule,
TradeModule,
TypeOrmModule.forRootAsync({
useFactory: async () => {
await setupSshTunnel();
return await getTypeOrmConfig();
useFactory: () => {
return getTypeOrmConfig();
},
}),
UpbitModule,
Expand Down
8 changes: 5 additions & 3 deletions packages/server/src/configs/redis.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
export const redisConfig = {
export function getRedisConfig() {
return {
host: process.env.REDIS_HOST || '127.0.0.1',
port: Number(process.env.REDIS_PORT) || 6379,
port: Number(process.env.REDIS_PORT) || 3308,
password: process.env.REDIS_PASSWORD || undefined,
db: Number(process.env.REDIS_DB) || 0,
};
}
};
3 changes: 1 addition & 2 deletions packages/server/src/configs/typeorm.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { TypeOrmModuleOptions } from '@nestjs/typeorm';

export default async function getTypeOrmConfig(): Promise<TypeOrmModuleOptions> {

export default function getTypeOrmConfig(): TypeOrmModuleOptions {
return {
type: process.env.DB_TYPE as 'mysql',
host: process.env.DB_HOST,
Expand Down
3 changes: 2 additions & 1 deletion packages/server/src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ import {
SwaggerCustomOptions,
} from '@nestjs/swagger';
import { config } from 'dotenv';
import { setupSshTunnel } from './configs/ssh-tunnel';

config();

async function bootstrap() {
await setupSshTunnel();
const app = await NestFactory.create(AppModule);

app.enableCors({
origin: true,
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
Expand Down
18 changes: 18 additions & 0 deletions packages/server/src/redis/redis.controller.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { RedisController } from './redis.controller';

describe('RedisController', () => {
let controller: RedisController;

beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [RedisController],
}).compile();

controller = module.get<RedisController>(RedisController);
});

it('should be defined', () => {
expect(controller).toBeDefined();
});
});
30 changes: 30 additions & 0 deletions packages/server/src/redis/redis.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { Controller, Get, Post, Delete, Param, Body } from '@nestjs/common';
import { RedisRepository } from './redis.repository';

@Controller('redis')
export class RedisController {
constructor(private readonly redisRepository: RedisRepository) {}

@Get(':key')
async getValue(@Param('key') key: string): Promise<string | null> {
return await this.redisRepository.get(key);
}

@Post()
async setValue(
@Body() body: { key: string; value: string; ttl?: number },
): Promise<string> {
const { key, value, ttl } = body;
return await this.redisRepository.set(key, value, ttl);
}
@Delete(':key')
async deleteKey(@Param('key') key: string): Promise<number> {
return await this.redisRepository.delete(key);
}

@Get(':key/exists')
async checkExists(@Param('key') key: string): Promise<boolean> {
const result = await this.redisRepository.exists(key);
return result === 1;
}
}
9 changes: 6 additions & 3 deletions packages/server/src/redis/redis.module.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
import { Module, Global } from '@nestjs/common';
import Redis from 'ioredis';
import { redisConfig } from 'src/configs/redis.config';
import { getRedisConfig } from 'src/configs/redis.config';
import { RedisRepository } from './redis.repository';

import { RedisController } from './redis.controller';
import { config } from 'dotenv';
config()
@Global()
@Module({
providers: [
{
provide: 'REDIS_CLIENT',
useFactory: () => {
const client = new Redis(redisConfig);
const client = new Redis(getRedisConfig());
client.on('connect', () => console.log('Redis 연결 성공'));
client.on('error', (error) => console.error('Redis 연결 실패:', error));
return client;
Expand All @@ -18,5 +20,6 @@ import { RedisRepository } from './redis.repository';
RedisRepository
],
exports: ['REDIS_CLIENT', RedisRepository],
controllers: [RedisController],
})
export class RedisModule {}

0 comments on commit 854f9e0

Please sign in to comment.