profile image

L o a d i n g . . .

서버가 클라이언트에 하나가 아닌 둘 이상의 여러가지 응답을 보내려 할 때 뜨는 에러다. 하나의 요청에서 하나의 응답이아닌 여러 응답을 보내려 할 때 뜨는 오류며 나의 코드는

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통신으로 변했다.

반응형
복사했습니다!