정돈 된,의도 된 코드. 코드의 가독성, 관리성, 퀄리티 부분에서 좋음
Model - 데이터의 정보를 가지고 있음
자신이 데이터를 가지고 있다던지,,,Controller와 대화를 한다
model에서 주로 쿼리문을 이용해서 데이터를 가져오는 형식
View - 유저가 보는 화면을 보여준다.
Controller와만 대화한다.
Controller - View에서 이벤트 발생하면 Model로 바로 전달되는 것이 아니라 Controller에서 가공의 과정을 거치게 된다.
수도코드는 아래와 같다.(출처는 생활코딩)
/routes
Users/profile/:id = Users.getProfile(id)
/controllers
Class User{
function getProfile(id){
Profile = this.UserModel.getProfile(id) //Model이 데이터를 가져온 것
renderView(‘user/profile’,profile)
}
}
/models
Class UserModel{
Function getProfile(id){
data = this.db.get(’SELECT * FROM users WHERE id = id’)
return data;
}
}
/views
/users
/profile
<h1>{{profile.name}}</h1>
<ul>
<li>{{profile.email}}</li>
</ul>
FOREIGN KEY로 서로 연결(?)되어있는 테이블들 사이에서 join을 사용하여 원하는 정보를 찾을 수 있게 쿼리문을 작성해보는 시간을 가졌다.
스프린트 진행하면서 어떻게 진행해야 하나 감이 전혀 안잡혔었는데, 페어분이랑 코딩하면서 테케부터 조지는게 답이구나... 라고 확실히 알 수 있었다.,,,
그리고 https://github.com/mysqljs/mysql 에서 어떻게 작성해야 하는지에 대한 답을 거의 찾을 수 있었다. 비동기 처리 공부하면서 배웠던 콜백을 활용하여 코드를 작성하였는데 다음에 혼자 학습할 땐 프라미스르 활용하여 하는 방법도 따로 공부해보고 싶었다.
그리고 환경변수... db의 password를 환경변수로 설정해 줬는데, 각 터미널마다 입력을 해주지 않아서 터미널을 따로 두고 실행했을때 db가 실행되지 않는 문제 때문에 시간을 많이 버렸다ㅜㅜ... 꼭 다 환경변수 입력해주기!