함수로 인해 res 응답이 2번 나오려고 할때 오류 발생

장영환·2024년 9월 29일

트러블슈팅

목록 보기
3/12

발단

res 응답을 2번 나오려고 할때 발생하였다

function accountcheck(id, password, res) {
  let Checkid = checkid(id);
  if (Checkid === -1) { // id와 동일한 데이터를 찾아서 index 반환, 없으면 -1 반환
    res.status(404).json("아이디가 존재하지 않습니다"),"no exist"
  }
  if (password === userInfos[Checkid].password) {
    return res.status(200).json("로그인 성공"),"success"
  } else {
    res.status(409).json("로그인 실패. 비밀번호를 다시 입력하십시오"),"fail"
  }
}

app.post("/sign-in", async (req, res) => {
  let { id, password } = req.body;  
  if(accountcheck(id,password, res)==="success"){
    return res.status(200).json("로그인 성공")
  }

Cannot set headers after they are sent to the client

결말

res를 한번만 사용하여 해결하였다

function accountcheck(id, password, res) {
  let Checkid = checkid(id);
  if (Checkid === -1) { // id와 동일한 데이터를 찾아서 index 반환, 없으면 -1 반환
    res.status(404).json("아이디가 존재하지 않습니다"),"no exist"
  }
  if (password === userInfos[Checkid].password) {
    return "success"
  } else {
    res.status(409).json("로그인 실패. 비밀번호를 다시 입력하십시오"),"fail"
  }
}

app.post("/sign-in", async (req, res) => {
  let { id, password } = req.body;  
  if(accountcheck(id,password, res)==="success"){
    return res.status(200).json("로그인 성공")
  }

0개의 댓글