Published 2023. 4. 3. 20:53
서버가 클라이언트에 하나가 아닌 둘 이상의 여러가지 응답을 보내려 할 때 뜨는 에러다. 하나의 요청에서 하나의 응답이아닌 여러 응답을 보내려 할 때 뜨는 오류며 나의 코드는
app.use((req, res, next) => {
const { password } = req.query;
if (password === 'orange') {
next();
}
res.send('SORRY YOU NEED A PASSWORD!!!');
});
이 상황에서 오류가 발생했다.
if 문을 타지 않으면 상관없지만 if문을 타고 next 메소드를 응답하고 나와서 res.send 또한 응답하려 했기 때문에 떴던 오류이다.
해결방법
app.use((req, res, next) => {
const { password } = req.query;
if (password === 'orange') {
next();
} else {
res.send('SORRY YOU NEED A PASSWORD!!!');
}
});
if-else로 둘 중 조건 하나만 탈 수 있게 했다.
아니면
app.use((req, res, next) => {
const { password } = req.query;
if (password === 'orange') {
return next();
}
return res.send('SORRY YOU NEED A PASSWORD!!!');
});
return 을 사용하여 응답 하나만 내보낼 수 있도록 할 수 있다.
기존에 에러가 나던 부분이 200통신으로 변했다.
반응형
'개발 > Error note' 카테고리의 다른 글
[React] useEffect must not return anything besides a function, which is used for clean-up..... (1) | 2023.05.27 |
---|---|
[Javascript] Error: Malformed UTF-8 data (0) | 2023.04.12 |
[git] remote: fatal error in commit_refs (0) | 2023.03.27 |
[Mongoose] MongoParseError: option usecreateindex is not supported (0) | 2023.03.24 |
[Node] Error: Cannot find module '파일명' (0) | 2023.03.15 |