게임서버(9)
-
11. Nest.js 광부왕 게임 서버 Log 저장 모듈 생성
로그 저장은 account, stage, item, company 분류 account : 계정 로그인 관련 로그 stage : 진행 게임 관련 로그 item : 아이탬 관련 로그 company : 회사 (길드) 관련 로그 1. 모듈 생성 ( Mongoose 설정 ), dayjs 설치 명령어 작성 nest g mo logs npm i dayjs src/logs/logs.module.ts 파일에서 MongooseModule 의존성 주입한다. import { Module } from '@nestjs/common'; import { MongooseModule } from '@nestjs/mongoose'; import { Logs, LogsSchema } from '../model/logs.model'; @Mo..
2023.03.13 -
10. Nest.js 광부왕 게임 서버 Socket.IO 설정
1. @nestjs/platform-socket.io, socket.io 설치 npm i @nestjs/platform-socket.io socket.io 2.adapters/adapters.ts 생성 Nest 서버에서 socket.io를 사용하기 위해 생성한다. adapters.ts 생성 import { IoAdapter } from '@nestjs/platform-socket.io'; export class SocketIoAdapter extends IoAdapter { createIOServer(port: number, options?: any): any { const server = super.createIOServer(port, options); return server; } } main.ts ..
2023.03.04 -
9. Nest.js 광부왕 게임 서버 Decorator 생성
1. src/common/decorators/user.decorators.ts 파일 생성 Guard를 통해 jwt.payload.ts에서 만든 interface jwtPayload 타입에 맞춰 받은 유저 정보를 출력한다. import { createParamDecorator, ExecutionContext } from '@nestjs/common'; export const CurrentUser = createParamDecorator( (data: unknown, ctx: ExecutionContext) => { const request = ctx.switchToHttp().getRequest(); return request.user; }, );
2023.03.03 -
8. Nest.js 광부왕 게임 서버 JWT 설정
1. @types/passport-jwt, passport, passport-jwt, @nestjs/jwt, @nestjs/passport 설치 npm i -D @types/passport-jwt npm i passport, passport-jwt, @nestjs/jwt, @nestjs/passport 2. auth module 생성 nest g mo auth 생성 된 auth.module.ts 파일 작성 JWT인증을 Guard로 공통된 인증 처리를 해야하기 때문에 @Global()를 적용. JWT 만료 기간은 1일이다. import { Global, Module } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; import { JwtS..
2023.03.03 -
7. Nest.js 광부왕 게임 서버 Interceptor 적용
1. src/common/interceptors/success.interceptor.ts 파일 생성 success.interceptor.ts 파일을 만들어 준다. * 클라이언트에서는 API가 정상적으로 요청이 되었는지 result :true를 통해 확인 한다. import { Injectable, NestInterceptor, ExecutionContext, CallHandler, } from '@nestjs/common'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; @Injectable() export class SuccessInterceptor implements NestInterceptor { intercept(..
2023.03.03 -
6. Nest.js 광부왕 게임 서버 Filter 적용
1. src/common/filters/error.exception.ts 파일 생성 error.exceptions.ts 파일을 만들어서 해당 코드를 넣어준다. 서버 처리 중 에러 발생 시 필터를 이용사용 하여 처리 한다. 1. 개발 중 에러 발생처리를 분기 처리 하여 개발 서버에서만 확인 하기 위해 console.log() 로 에러 값을 나타낸다. 2. 에러 메시지가 String, Object 두 타입으로 발생 하기 때문에 형태를 확인하고 분기 처리한다. import { ExceptionFilter, Catch, ArgumentsHost, HttpException, } from '@nestjs/common'; import { Response, Request } from 'express'; @Catch()..
2023.03.03