mysql -u root -p < server/schema.sql -Dcmarket
여기서 -Dcmarket이 뭘까? 생각했다.
-D는 옵션으로 database를 가리킨다.
-Dcmarket은 cmarket이란 이름의 데이타베이스에 스키마로 테이블을 넣겠다는 의미가 된다.
만약 나의 db에 test라는 이름의 데이타베이스가 있으면 -Dtest해주면 된다.
app.get('/movies/:id', (req, res) => {
// TODO:
console.log(req.params.id)
const filtered = movies.filter(movie => movie.id === Number(req.params.id))
if(!filtered.length){ //filtered.length === undefined면 왜 틀릴까?
return res.status(404).send()
}
res.status(200).send(...filtered) //filtered는 왜 펼쳐주는거지..?
});
복습을 하다보니 2가지 의문점이 생겼다.
왜 filtered.length === undefined라고 작성하면 틀린답일까?
-> 빈배열일때 404가 나오도록 코드를 짜고싶은데
[].length
는 0이다. 0은 undefined와 같지않다.
send안에 filtered를 왜 전개구문으로 펼쳐서 넣어주는거지?
-> test파일을 보고 자료형을 [{}]
이아니라 {}
객체로 맞춰주어야 한다는 점을 알아차려야한다. 그걸 몰랐다 ㅎㅎ..
controller파일에서 req.body가 어떻게 생겼는지 보고싶었는데, 콘솔이 안찍어졌다. 이때 test파일을 봐서 어떤 구조인지 볼 수 있었다.
또 console.log(req.body)를 작성하고 npm run test를 실행하면 서버를 켜둔 터미널창에 req.body의 형태가 찍혀져 나온다.
포스트맨으로 쿼리를 날리지 않았는데 test를 돌린것만으로 확인할 수 있어서 신기했다.
ha2를 다시 복습하다보니 section1에서나 틀릴법한 부분들을 헷갈리는게 보여서 슬펐다 ㅎ..
요즘 공부에 좀 나태해졌더니 확실히 바로 티가 나는것같다. 그리고 구글링도 실력이라는 말이 무엇인지 알 것같다. 어제부터 어떻게 검색해야하지 싶은 질문들이 생긴다..ㅜ
test파일을 보는건 엄청난 꿀팁이었다. 나는 test파일을 잘 안봤었는데 앞으로 자주 봐야겠다.
공식문서와 친해지자