codestates / codestates/BanThing

[Error Handling] room 에러

Open
#174 2 comments 0 reactions 1 assignee Claimed by @tmdqls2257 View on GitHub
client error solved
Dominant language
TypeScript
Stars
0
Forks
2
PR merge metrics
No merged PRs in 30d

Description

### 어떤 에러인가요?
![image](https://user-images.githubusercontent.com/54207332/155546719-82cdb8d1-e291-4f82-b5e7-29b9d1ed408e.png)
![image](https://user-images.githubusercontent.com/54207332/155546944-761d4dda-0446-4d46-8559-52102c3e2ffd.png)
![image](https://user-images.githubusercontent.com/54207332/155546856-f04221ed-7f2f-4c5d-a1c9-bc515f80ab1a.png)

- 치킨 방을 들어갔을 때 댓글이 쓰여진 것을 볼 수 있다. 마지막 사진을 보면 1번 즉 1번 방에서 채팅을 친 것인데 로그를 찍어보면 치킨의 룸 아이디는 43번이다, 이건 정말 서비스의 심각한 문제이다.
```
$ 터미널의 에러 코드를 여기 넣어주세요.
```

### 에러 핸들링 방법
- merge 전 상태로 돌아가 비교를 해보았다.
![image](https://user-images.githubusercontent.com/54207332/155632276-1d37327e-39d4-417d-97b3-cdf56ec2b6c7.png)
![image](https://user-images.githubusercontent.com/54207332/155632336-c50bcda0-3ff7-4a93-861c-753b04f89798.png)

- 정상적으로 작동되는 것을 볼 수 있다.
- 그렇다면 무엇이 문제였을까하고 생각하다가
- 어제의 에러인 이 에러가 떠올랐다.
![image](https://user-images.githubusercontent.com/54207332/155632460-b0a2241d-2a19-4b87-9aa0-aea2ca3e1727.png)
먼저 아래의 상태로 되돌아 가보자
```
useEffect(() => {
const getPosts = async () => {
try {
if (roomsId !== 0) {
axios
.post(`${process.env.NEXT_PUBLIC_SERVER_ENDPOINT}/main`, {
id: roomsId,
})
.then((response) => {
setData(response.data);
});
}
} catch (e) {
console.log(e);
}
};
getPosts();
}, [roomsId]);

if (chats) {
setUsersChats(chats);
}

if (data) {
setroomTitle(data.data.post.title);
}
```
![image](https://user-images.githubusercontent.com/54207332/155632608-a0519eed-e39a-488e-b25b-36c558f9aaaa.png)
- 에러가 나지만 기능은 정상적으로 사용이 된다.
- 어제의 해결법으로 돌아가 보자
```
useEffect(() => {
const getPosts = async () => {
try {
if (roomsId !== 0) {
axios
.post(`${process.env.NEXT_PUBLIC_SERVER_ENDPOINT}/main`, {
id: roomsId,
})
.then((response) => {
setData(response.data);
});
}
} catch (e) {
console.log(e);
}
};
getPosts();
if (chats) {
setUsersChats(chats);
}

if (data) {
setroomTitle(data.data.post.title);
}
}, [roomsId]);
```
![image](https://user-images.githubusercontent.com/54207332/155632907-7d3b74b1-7f2a-453d-80bb-173a574deeb5.png)
- 기능이 정상적으로 작동이 되지 않는다.
- 그렇다면 useEffect를 새로주어 해결해보자
```
useEffect(() => {
if (chats) {
setUsersChats(chats);
}

if (data) {
setroomTitle(data.data.post.title);
}
}, [data, chats]);
useEffect(() => {
const getPosts = async () => {
try {
if (roomsId !== 0) {
axios
.post(`${process.env.NEXT_PUBLIC_SERVER_ENDPOINT}/main`, {
id: roomsId,
})
.then((response) => {
setData(response.data);
});
}
} catch (e) {
console.log(e);
}
};
getPosts();
}, [roomsId]);
```
![image](https://user-images.githubusercontent.com/54207332/155633355-5988e00c-26ae-449a-8367-fca5a41b8190.png)
- 기능이 정상적으로 작동하는 것을 볼 수 있다.
- 오늘의 교훈: 오늘의 해결책이 내일의 버그이다.

### 에러 핸들링을 위해 참고한 레퍼런스 링크
[링크](https://github.com/codestates/Memory-It/issues/205)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.