수업 영상 링크: link – 작년(2021) 녹화 영상입니다.

  • due date:
    • 3가지 파일을 본인 Github에 올려주세요!
  • 세미나5에서 다룬 내용을 HW를 통해 복습해봅시다!
  • 세미나 때 작성한 코드와 로직이 동일합니다. 다만, 이전 코드를 복붙하는 것은 지양해주세요. 여러분의 실력 향상을 도움이 되지 않습니다 ㅠㅠ 이전 코드는 참조만 하고, 직접 타이핑해서 코드를 작성해주세요!

P1. 음식 데이터베이스

localhost:8080/food에 접속하면 음식에 대한 데이터베이스에 CRUD 연산을 할 수 있는 서버를 작성해주세요.

공통 지시사항

  • 데이터베이스는 poapper_backend를 그대로 사용해주세요.
  • 테이블은 foods라는 이름으로 생성하고, 다음의 컬럼을 가지도록 디자인 해주세요.
    • id: Primary Key, auto increment
    • name: string, not null
    • kcal: number, not null
    • isVegan: boolean
    • 테이블 작성을 위한 SQL 명령어는 따로 제공하지 않습니다. 적절한 테이블을 스스로 디자인 해주세요! 그 과정에서 필요한 명령어를 찾는 것 역시 HW에 포함됩니다!
  • 테이블을 만들 때, 사용했던 SQL 명령어를 myql_table.txt의 이름으로 저장하여 함께 제출해주세요.
  • POSTPUT을 구현할 때, request body를 이용해 구현해주세요.
  • (중요!) 보안을 위해 파일을 제출할 때, DB connection의 password에 있는 본인의 password를 지우고 제출해주세요!

예를 들어,

var db = mysql.createConnection({
    host:'localhost',
    user:'root',
    password:'password', // 본인의 비번이 담긴 이 부분을 수정해서 제출하시면 됩니다!
    database:'poapper_backend'
});

예시

  • GET localhost:8080/food로 접속하면, foods 테이블에 담긴 모든 음식 정보를 response를 통해 얻음.
  • GET localhost:8080/food/[id]로 접속하면, foods 테이블에 담긴 id=[id]인 음식의 정보를 response를 통해 얻음.
  • POST localhost:8080/food와 request body의 값을 통해 foods 테이블에 body에 담긴 음식 정보를 저장함.

P2. 음식 데이터베이스: 비건 음식만 얻기

문제1에서 구현한 서버에서 하나의 기능을 더 추가합니다.

GET localhost:8080/food/isVegan에 접속하면, 데이터베이스에 저장된 모든 비건 음식을 response를 통해 얻을 수 있도록 디자인 합니다.

  • P1과 P2를 하나의 Food.js 파일에 제출하시면 됩니다!
  • hint: SELECT * FROM foods WHERE ...를 통해 얻은 값의 집합을 탐색합니다.