Cmarket database[2021.11.16]

김정훈·2021년 11월 19일
0

스프린트

목록 보기
3/5
post-custom-banner

1. 스키마, 시드 파일 확인

  • mysql에 접속해 cmarket 데이터베이스 생성
    • create database cmarket
  • 미리 구성되어 있는 스키마를 기반으로 데이터베이스의 테이블을 생성
    • mysql -u root -p < schema.sql -Dcmarket
  • 테이블에 기반이 되는 데이터를 저장
    • mysql -u root -p < seed.sql -Dcmarket

2. 서버

  • 환경변수를 통한 데이터베이스 정보 저장
    • 보안 및 편의상 이유로 비밀번호는 환경 변수로 분리해놓는 편이 좋음
    • 공개된 환경에 비밀번호가 노출되면 안 되기 때문에 환경 변수를 관리하는 파일은 반드시 .gitignore 파일에 등록!!! 중요
    • .env 파일을 통해 데이터베이스 패스워드 저장

3. 라우터

  • 라우터는 컨트롤러로 진입할 수 있게 도와주는 endpoint
  • app.js를 통해 endpoint를 확인
  • routes 폴더에 users.js 파일 생성
    • controller.orders.get, controller.orders.post 작성
  • index.js 파일에 user.js endpoint 작성

4. 컨트롤러

  • 각 endpoint에 대한 구현
  • GET /users/:userId/orders
    • req.params를 통해 userId값을 받음
    • userId값이 있을 경우 모델의 orders의 get 메소드를 통해 적절한 응답 내보내기
  • POST /users/:userId/orders
    • req.params를 통해 userId값을 받고, req.body를 통해 orders, totalPrice값을 받음
    • 모든 값을 제대로 전달 받았을 경우 모델의 orders의 post 메소드를 통해 적절한 응답 내보내기

5. 모델

  • SQL 쿼리문을오 DB의 정보를 처리
  • 데이터베이스 쿼리는 비동기 요청!

const queryString = `SELECT * FROM users where users.id = ? `;
//데이터베이스에 연결하여 찾고자하는 값의 쿼리문 작성
const params = [[userId]]
// 파라미터로 전달 받은 값을 배열의 형태로 저장!
db.query(queryString, params, (error, result) => {
        callback(error, result);
});
//query()메소드를 통해 데이터베이스에서 원하는값 찾기
//쿼리문의 ? 자리에 두번째로 전달받은 인자값(pamas)이 들어감!!!
//단일값일 경우 이중배열로 넣어야하며, 값이 여러개일 경우 삼중배열로 작성!!
//[[[userId, totalPrice]]]
      
profile
프론트엔드 개발자를 꿈꾸고 있습니다!
post-custom-banner

0개의 댓글