미완)TIL : 210727_화_(cmarket_sql)

beablessing·2021년 7월 27일
0

TIL

목록 보기
27/33
post-thumbnail

오늘 배운 내용

  • ct와 연결된 서버 구현해서 데이터 브라우저로 보내주기.

DB생성 및 table생성 + cmarket서버와 sql을 연결?

  • MySQL에 접속해서 필요한 데이터베이스를 생성한다.
    CREATE DATABASE 데이터베이스이름;

  • mysql -u root < server/schema.sql -p -D데이터베이스이름
    작업해둔 schema.sql(테이블들이 존재하는)파일을 실행시키기 위해 커맨드 명령어를 입력한다.
    : shema.sql파일은 테이블생성 파일이므로, 위 명령어로 테이블이 생성되었음.

  • mysql -u root -p < server/seed.sql -Dcmarket
    위에서 생성한 테이블에 데이터를 저장. (테이블의 기반이 되는 데이터를 저장)
    : seed.sql은 생성한 db 테이블에 준비된 데이터를 미리 저장. (db스키마의 구성과 같아야 저장이 가능함)

  • 잘못생성된 db삭제 후 다시 생성
    DROP DATABASE IF EXISTS [잘못 생성한 데이터베이스] CREATE DATABASE [다시 생성하려는 데이터베이스]

서버를 구현

  • npm i
  • package.json에 기록된 npm모듈 mysql 확인 : cmarket서버와 mysql서버가 상호작용할 수 있게 함.
  • mysql비번 다루기

1.비번을 설정해줌
2.환경변수로 비번을 분리해놓는다.
(dotenv사용해야함)
스프린트에서는 server/config/config.js확인

const dotenv = require('dotenv');
dotenv.config();

위의 형식으로 dotenv를 불러오고
3..env파일에 DATABASE_SPRINT_PASSWORD=YOUR_MYSQL_PASSWORD를 입력해준다.(another환경변수 필요할시, .env파일에 입력해주면 됨.)

  1. config.js 다시 확인하면 .env에서 지정해준 환경변수로 비밀번호들을 불러오고 있음을 알 수 있다.

  • app.js파일: express 설정담당하는 파일
  • server/controllers/index.js :
    orders에 대한 Get,Post요청과 items에 대한 get요청 처리 로직이 구현되어있음.

    컨트롤러가 서버에 요청을 보내고 ct에 응답을 전송하고 있음 (404처리 등이 여기서 일어남)

  • server/db/index.js :
    db와 서버 인스턴스를 연결하기 위해 mysql 모듈을 사용합니다.

(??????config 에서도 mysql모듈을 불러왔는데 config.js의 값을 받고 있는 db>index 여기서도 mysql모듈을 불러고오 있는지 의문이다. 알아보자)

  • models/index.js:
    컨트롤러에서 사용할 orders 그리고 items를 정의한다.
    즉, 데이터를 받아온다.
    post를 구현하는데 진땀을 뺐다.
    post는 ct가 주문버튼을 눌러 주문내역에 대한 정보를 수정요청하는것이라는 이해가 필요.

post 구현부분 코드 살펴보기

시간날때 복습하기..
스키마를 정확하게 볼줄알고, 각 테이블에 해당하는 레코드들이 어떻게 들어가는지 아는것이
포인트이다.

client 파일 순차적으로 살펴보기

서버와 sql연결하는 레퍼런스

https://www.npmjs.com/package/mysql#establishing-connections

dotenv 와 .env파일 사용 레퍼런스

https://www.npmjs.com/package/dotenv

profile
프론트엔드 개발자

0개의 댓글