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
mysql
확인 : cmarket서버와 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
파일에 입력해주면 됨.)
.env
에서 지정해준 환경변수로 비밀번호들을 불러오고 있음을 알 수 있다. app.js
파일: express 설정담당하는 파일 server/controllers/index.js
:orders
에 대한 Get,Post요청과 items에 대한 get요청 처리 로직이 구현되어있음. 컨트롤러가 서버에 요청을 보내고 ct에 응답을 전송하고 있음 (404처리 등이 여기서 일어남)
server/db/index.js
:(??????config 에서도 mysql모듈을 불러왔는데 config.js의 값을 받고 있는 db>index 여기서도 mysql모듈을 불러고오 있는지 의문이다. 알아보자)
models/index.js
:orders
그리고 items
를 정의한다.시간날때 복습하기..
스키마를 정확하게 볼줄알고, 각 테이블에 해당하는 레코드들이 어떻게 들어가는지 아는것이
포인트이다.
https://www.npmjs.com/package/mysql#establishing-connections