일기

12/3

Realuda72 2024. 12. 3. 22:35

오늘 한 일


코딩테스트 연습

 

2016년

function solution(a, b) {
    var month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    var day = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU'];
    var answer = '';
    
    var len = 0;
    for(i = 0; i < a-1; i++){
        len += month[i];
    }
    len += b - 1;
    len = len % 7;
    answer = day[len];
    return answer;
}

1. 달마다 일 수를 미리 배열로 저장해둔다.

2. 입력받은 월 일을 가지고 1월 1일로부터 경과한 날짜를 계산한다.

3. 날짜를 7로 나눈 나머지로 요일을 계산한다.

 

카드 뭉치

function solution(cards1, cards2, goal) {
    var answer = 'Yes';
    
    for(e of goal){
        if(e === cards1[0]){
            cards1.shift();
        }else if(e === cards2[0]){
            cards2.shift();
        }else{
            return 'No'
        }
    }
    return answer;
}

1. 목표 문장을 앞에서부터 한 단어씩 순회한다.

2. 단어가 카드뭉치 1이나 2의 맨 위에 있는지 확인한다.

3. 단어가 있다면 카드뭉치에서 단어를 제거한다.

4. 단어가 없다면 No를 반환한다.

5. 문장을 모두 순회했다면 Yes를 반환한다.


1. 선수 목록 조회 api

Players 테이블에서 모든 데이터를 조회해서 이름을 반환해준다.

// 선수 목록 조회
router.get('/players', async (req, res, next) => {
    const players = await prisma.players.findMany({
        select: {
            player_name: true,
        }
    })
    return res.status(200).json({ players: players });
});

 

2. 선수 정보 상세 조회 api

Players 테이블에서 playerId(프라이머리 키)로 선수 정보를 조회해서 이름과 모든 능력치를 반환한다.

// 선수 상세 조회
router.get('/players/:playerId', async (req, res, next) => {
    const { playerId } = req.params;

    const player = await prisma.players.findUnique({
        where: { player_id: +playerId },
        select: {
            player_name: true,
            player_speed: true,
            player_finish: true,
            player_power: true,
            player_defense: true,
            player_stamina: true,
        }
    })
    if (!player) {
        return res.status(404).json({ msg: '존재하지 않는 선수입니다.' });
    }
    return res.status(200).json({ players: player });
})

 

3. 에러 핸들링 api

 우선은 앞선 라우터로부터 생긴 에러 정보를 받아서 그대로 출력한다. 추후에 다른 라우터에서 생기는 에러는 케이스로 나눠서 따로 처리할 예정

export default function (err, req, res, next) {
    // 에러를 출력합니다.
    console.error(err);

    // 클라이언트에게 에러 메시지를 전달합니다.
    res.status(500).json({ errorMessage: '서버 내부 에러가 발생했습니다.' });
}

 

 

4. 트러블슈팅

런타임 에러: http리퀘스트를 보냈더니 아래와 같은 에러가 나왔다.

 

PrismaClientInitializationError:
Invalid `prisma.players.findMany()` invocation:


error: Environment variable not found: DATABASE_URL.
  -->  schema.prisma:13
   | 
12 |   provider = "mysql"
13 |   url      = env("DATABASE_URL")
   | 

 

npx prisma generate를 안해서 생긴 문제였다... 

 

 

 

'일기' 카테고리의 다른 글

12/5  (0) 2024.12.05
12/4  (0) 2024.12.04
12/2  (0) 2024.12.03
11/28  (0) 2024.11.29
11/22  (0) 2024.11.23