이번엔 중복했는지 확인하면서 회원가입 보는 것.
코드를 만들면서 이 코드가 맞는지 확인을 하면서 가야한다.
하나할 때마다 실행시켜서 확인을 해 봐야한다.
코드를 다 짜고 나서 한번에 오류 수정하려고 하면 찾기 힘들거 어려우니까.
(오류는 어짜피 위에서부터 내려가는거니까. 위에서 한줄씩 실행시키면서 오류를 수정해나가는게 편하다는 것)
그렇다면, 회원가입할 때 첫번째 단계가 키가 다 있는가 이니까,(코드에는 키 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에게도 힌트를 얻느 것이지 아예 완벽히 고쳐주진 못한다.
뭐 하나, 몇번째줄/ 괄호 / 키 에러 등 던져주면
예상해가면서 고치는 것
차분하게
'Wecode -Foundation 2 (부트캠프) > Foundation Test' 카테고리의 다른 글
Foundation Test: Postman 통신 결과, mysql 결과 (0) | 2023.09.16 |
---|---|
Foundation Test 앞서, 회원가입, 로그인, 토큰발행 [전반적인 흐름] 구조화 (0) | 2023.09.07 |
Foundation Test 위한, 로그인 + token 발행 [개념] (0) | 2023.09.07 |