//====================================================================================================================
//====================================================================================================================
// src/routes/matches.router.js
// 유저 api 라우터
//====================================================================================================================
//====================================================================================================================
import express from 'express';
import { prisma } from '../utils/prisma/index.js';
import authMiddleware from '../middlewares/auth.middleware.js';
import simulateMatch from '../utils/gameLogic/gameLogic.js';
import crypto from 'crypto';
const router = express.Router();
/* 앞 부분 이하 생략 ... */
router.post('/matches', authMiddleware, async (req, res, next) => {
/* 앞 부분 이하 생략 ... */
// utils에서 게임로직통해 매치에서의 양팀 스코어 생성
const { userSquadScore, opponentSquadScore } = simulateMatch(userSquad, opponentSquad);
console.log(":: userSquadScore :: " + userSquadScore);
/* 뒷 부분 이하 생략 ... */
});
//====================================================================================================================
//====================================================================================================================
// utils/gameLogic.js
// 게임 로직 함수 구현부
//====================================================================================================================
//====================================================================================================================
import crypto from 'crypto';
import { GAME_LOGIC_WEIGHTS, STAMINA_DECAY_RATIO } from '../../config/gameLogic.config.js';
// export 하려는 매치 시뮬레이션 로직
const simulateMatch = (squad1, squad2) => {
// 점수 초기화
let { SquadScore1, SquadScore2 } = { userSquadScore: 0, opponentSquadScore: 0 };
/* 뒷 부분 이하 생략 ... */
utils 폴더에 작성한 게임 로직 관련한 함수를 이용하는데 개별단으로 테스트할 때에는 문제가 없었지만,
API 테스트를 해 볼 때에 적합한 형식이 아니라는 에러 로그가 나오는 것을 발견했다.
쿼리나 속성 읽는 게 문제는 없어서 의아했으나 찾아본 결과
위의 코드 스니펫을 보면 알 수 있듯이,
함수에서 SquadScore1, SquadScore2라고 선언된 변수의 변수명과
실제 사용하는 API 단에서 userSquadScore, opponentSquadScore 변수명이 일치하지 않아 생기는 문제였다.
데이터 모델 변경 이후에 마이그레이션에 관해
npx prisma generate
를 통해 한 번 제너레이터를 돌려 주어야 하는데, 이 작업을 한 줄 알고 자꾸 마이그레이션 에러가 나타났었다.