codestates / codestates/Senna-server

[Error] UnhandledPromiseRejectionWarning: Cannot set headers after they are sent to the client

Open
#15 0 comments 0 reactions 0 assignees View on GitHub
Error
Dominant language
JavaScript
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

### 어떤 에러인가요?
응답 로직이 충돌하며 발생한 에러
![image](https://user-images.githubusercontent.com/77980674/123387690-05f9ba00-d5d3-11eb-9d1d-e5224b077e6d.png)

### $ 터미널의 에러 코드를 여기 넣어주세요.
- DB에 데이터 존재 유무 확인 후 조건문으로 응답을 다르게 보내도록 처리해줬는데 if/else 응답이 서로 충돌하는 것 같다.
```
await User.exists({userId: id})
.then(data => {
console.log('data', data)
if(!data) {
res.send({message: '사용할 수 있는 아이디입니다.'})
}
res.status(401).send('이미 존재하는 아이디입니다.')

})
.catch(err => {
res.status(404).send('잘못된 요청입니다.')
return err;
})
```

### 에러 핸들링 방법
- else를 명시적으로 적어주었다.
```
await User.exists({userId: id})
.then(data => {
console.log('data', data)
if(!data) {
res.send({message: '사용할 수 있는 아이디입니다.'})
}
else res.status(401).send('이미 존재하는 아이디입니다.')

})
.catch(err => {
res.status(404).send('잘못된 요청입니다.')
return err;
})
```

### 에러 핸들링을 위해 참고한 레퍼런스 링크

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.