Wecode -Foundation 2 (부트캠프)/Foundation Test

Foundation Test 위한, 회원가입 (에러 확인, postman 실행, try- catch 구조)

Queen Julia 2023. 9. 7. 20:16

이번엔 중복했는지 확인하면서 회원가입 보는 것. 

코드를 만들면서 이 코드가 맞는지 확인을 하면서 가야한다.

 

하나할 때마다 실행시켜서 확인을 해 봐야한다.

코드를 다 짜고 나서 한번에 오류 수정하려고 하면 찾기 힘들거 어려우니까.

(오류는 어짜피 위에서부터 내려가는거니까. 위에서 한줄씩 실행시키면서 오류를 수정해나가는게 편하다는 것)

 

그렇다면, 회원가입할 때 첫번째 단계가 키가 다 있는가 이니까,(코드에는 키 email, password가 다 들어와야 한다고 썼다. 

일부러 키를 하나 오류를 내는 방법, 

1) key값을 다 줬는지에서 

email를  

postman body에서 지워보고, 

쳐보면, postman 오류로, keyerror 메세지가 나온다 (에러 나왔을 떄 내가 설정한 메세지)

(프론트와 json으로 소통하기로 했음) 

 

그럼 이제 다시 postman을 원래대로 돌려주야 함

command+ z 하면 되돌리기임.

그리고 저장은 따로 안해도 됨. 실시간으로 저장됨 (vscode와 다르게. vscode는 매번 저장command+s 하면서 해야 함) 

 

 

 

** 이 모든 것을 터미널에*

저장은 comman+s , 서버 끄는 건 ctrl+c (안 쳐진다면 termninal에 넣어야하니까 터미널에 클릭한번 해주고),

항상 서버 키기 (node app3.js 후에 initialized! 이 터미널에 떠야 한다!) 

수정 후에는 저장, 서버 껐다가 (리셋) 

다시 서버 키고, postman에 돌려보기 

 

오류 보는 법

code를 치고 나서 터미널에 저장- 서버 끄기- 서버 작동 후

postman을 send 로 돌리고 나면, 

터미널로 돌아가서 이렇게 나온다. 

 

at으로 에러 위치를 알려주는데 

여러 줄의 at 중에서 bold체 부분이다. 

js:232:10를 가장 끝을 보면 되는데

232줄인 것이고 10은 열이다 표로 보면 10번째라는 것 .셀수 없으니 그냥 그러려니 .


** query 쓸 때에는

fn + 원화 로 백팁으로 해야 한다. 일반 따옴표가 아니라 '' 

 

try catch 구조 

app.post("/users", async(req, res) => {

try {

   const me = req.body
    console.log(me)

     if ( existingUser[0]=1 ) {
      const error = new Error("DUPLICATED_PASSWORD")
      error.statusCode=400
      throw error
  }

 

 

 

 

app.get('/users', async(req, res) => {
try {
    const userData = await myDataSource.query('SELECT id, name, email FROM USERssssS ')


    console.log("USER DATA:", userData)


    return res.status(200).json({  "users": userData
    })
} catch (error) {
console.log(error)
    return res.status(500).json({"message": error.message 
    })
}
})    

 

if문은 if여러개 있어면 하나씩 확인하고 

if 하나라도 걸리면

if 의 { } 로 가서 그 안에 있는 const 거치고 throw 거치고 쭉쭉 내려가고

에러니까 return 정상은 무시하고

catch로 가고 (throw-catch) 

 

 

다시 정리하면, 

try안에 예상되는 오류 사항 적고, if 옆의 중괄호 로 가고,

중괄호 안에 const, throw 있고, throwㄹ error로 던졌으니 , return 무시하고 다로 error로 간다
console.log(error)



 

 

만약 if들 중에 하나도 안 걸리면 

그냥 쭉 내려가는거고  (if의 { }에 안 해당되니까, 만약 ~~이면 이니까) 

 

코드는 이렇게 한줄씩 내려가는거다

해당 안 되면 쭉 내려가고

해당 되면 걸리는거고

 


오류 또한 터미널에 뜨는 오류에서 at으로 몇번째 줄이라고 말해주면, 그 윗줄은 다 오류가 없다는 것. 그러니까 여기까지 내려온 것

오류 있었으면 여기까지 안 감

 

어떨 때에는 아래에 코드 오류가 있었어도, 아직 거기까지 안 가서 오류 안 난 경우도 있다. 

그때는 일단 거기까지 내려가서 실행 시키면서 오류 하나씩 잡아야 함.

 

오류 나는 것도 한번에 다 안 알려줌

산넘어 산처럼, 한번에 하나씩 알려줌

 

본인이 어디어디 틀렸는지 알겠으면 한번에 고치는게 best지만. 

힌트를 얻어가며 완성 시키는. 

 

chat gpt에게도 힌트를 얻느 것이지 아예 완벽히 고쳐주진 못한다. 

 

뭐 하나, 몇번째줄/ 괄호 / 키 에러 등 던져주면

예상해가면서 고치는 것

 

차분하게