tastekim / WeAllLie-BE

👀We Are Lie는 보드게임 '스파이 폴' 을 모티브로한 화상채팅으로 진행하는 온라인 보드게임 플랫폼 입니다 !(~2022.12.22)
3 stars 4 forks source link

User/login 로그인 부분 파일 분리, receiveRoomMsg 이벤트 에밋할 때 argument 추가, 에러 핸들러 추가 중 #162

Closed ghost closed 1 year ago

ghost commented 1 year ago

1. 로그인 부분 3계층 아키텍처 적용

3. chat-socket.js 의 룸채팅 메세지 이벤트들에서 receiveRoomMsg emit 하는 방법 계속 추가해보고 테스트 하는 중

    socket.on('leaveRoomMsg', (roomNum, nickname) => {
        console.log(`${nickname} ${roomNum}번 방 퇴장`);
        const msg = `${nickname} 님이 퇴장하셨습니다.`;
        const msgId = new Date().getTime().toString(36);
        // 방법1
        // socket.to(`/gameRoom${roomNum}`).emit('receiveRoomMsg', { notice: msg }, msgId);
        // 방법2
        // chat.to(`/gameRoom${roomNum}`).emit('receiveRoomMsg', { notice: msg }, msgId);
        // 방법3
        // chat.in(`/gameRoom${roomNum}`).emit('receiveRoomMsg', { notice: msg }, msgId);
        // 방법4
        // socket.broadcast.to(`/gameRoom${roomNum}`).emit('receiveRoomMsg', { notice: msg }, msgId);
        // 방법5
        socket.broadcast.in(`/gameRoom${roomNum}`).emit('receiveRoomMsg', { notice: msg }, msgId);
    });

4. 에러 핸들 관련 파일 추가

class CustomError extends Error { constructor(message, statusCode = 500) { super(message);

    this.message = message;
    this.statusCode = statusCode;
}

}

// User 디렉토리에서 사용하는 에러 class UserError extends Error { constructor(message, statusCode = 500) { super(message);

    this.name = UserError;
    this.message = message;
    this.statusCode = statusCode;
}

}

module.exports = { CustomError, UserError, };


- wrap-async.js : user 디렉토리의 모든 Route에 대해 에러 받아서 에러 핸들러로 전달하는 함수

### 5. 테스트 코드 작성할 파일 추가 (진행중)