앞서 설치한 mysql 모듈을 웹에 적용해 파일로 구현했던 홈페이지에 보여주는 정보를 데이터베이스로 구현해보자.

- mysql2 이라는 모듈을 가져온다. 모듈의 이름은
mysql이라고 하자.- 모듈을 가져왔으니, 실제 데이터베이스와 연결을 해야한다!
mysql 모듈의createConnection메소드 호출을 통해 mysql 계정 정보를 입력한다.- 데이터베이스와의 연결한 정보를 변수
db라고 하자.- 변수에
connect이라는 메소드를 호출해 mysql과 접속을 하자.

- localhost:3000 으로 들어가면 맨 처음 보이는 화면 = 최상위 경로 = querystring의 id 값이 없음
query문을 이용해 파일 대신 데이터베이스를 홈페이지의 정보로 가져오자!- query 문의
첫번째 인자로사용할 테이블을 선택하는 쿼리문 작성두번째 인자로첫번째 인자로 서버가 응답하면 그 응답한 결과를 웹페이지가 처리할 수 있도록콜백 함수콜백 함수의 시그니처(형식)으로 첫번째 파라미터로는error정보를, 두번째 파라미터로는 결과가 성공적일 때쿼리문의 결과 = topics가 담길 수 있게 한다.Success!라는 문구가 보이면 성공

- 주석 처리한 기존 코드를 활용해 데이터베이스로 웹페이지를 구성한다.
template.list는lib/template.js의list property의 함수이다. 파라미터명을filelist에서topic으로 변경하자.

template.HTML은 웹페이지의 기초적인 틀을 담당한다.- 파라미터를 체크한다.

- 웹페이지를 reload 했을때 이렇게 나온다.
- 하지만 우리가 원하는 모습과 비슷하지만 다른데, title 대신
object Object라는 날것의 객체가 보인다.

template.list의 property가 잘못되었기 때문인데, 우리는 topics라는 객체의 title이라는 property가 필요하기에 코드를topic[i].title로 수정한다.

- reload 시, title의 내용이 아주 잘 보인다 ^_^
CRUD을 적용하기 위해 각각의 title로 들어가본다.

- Oops! 원치않은 웹사이트의 모습이다. 이때
url을 관찰했을때,querystring의 값이 object로 나온다.- 왜일까? 코드에서 title의 property를 수정했는데 말이다. 마우스 우클릭
페이지 소스보기로 들어가서 원인을 탐색해보자

a태그의querystring값이 객체로 되어있기 때문에 그렇게 보인듯 하다.

template.js의list함수의a태그의 쿼리스트링 값에 유일무이한 식별자인 테이블의id값을 추가한다.

- 웹 페이지를 reload 했을때, 쿼리 스트링의 값이
id값으로 잘 나온다면 성공!