기존 Apollo-Server 방식?
=> Schema-First(typeDefs를 직접 하나하나 작성하는 방식)
=> Code-First
이미 작성된 resolver 코드에서 필요한 부분을 가져와 schema를 만들어줌
typeDefs를 작성하지 않아도 됨
각 폴더의 service, resolver가 module에서 합쳐지고 모든 api module이 app.module로 합쳐지게 된다.
graphql과 typescript의 type 작성방식
shell에서 mysql 실행
mysql -u root -p
비밀번호 입력
데이터베이스 목록 : show databases
데이터베이스 선택 : use 데이터베이스 이름
테이블 목록 : show tables
원하는 데이터 찾기 : select * from 테이블이름
보통은 DBeaver 같은 tool을 사용하여 DB를 확인함
DBeaver에서도 터미널에서처럼 똑같이 SQL query를 사용할 수 있다.
많은 SQL query를 외우기 힘들기 때문에 ORM(TypeORM)을 사용한다.
nest.js DOCS에서 mysql 연결하는 법
MongoDB와 마찬가지로 entity를 만들어주고 app.module에 연결해주면된다. keyColumn 설정은 필수 MongoDB에 id와 같은 역할
resolver에서 @Query , @Mutation 으로 게시글조회, 게시글등록 api를 만든다.
fetchBoard의 경우 Board라는 entity를 만들어줘야 graphql의 typeSchema가 만들어진다.
객체형태로 만들어지기 때문에 import 할때 [] array 안에 넣어주어야 한다.
createBoard의 경우 @Arg로 frontend에서 받아오는 입력값을 설정해주는데 이때 값을 따로 하나씩 받아주는 방법도 있고, createBoardInput과 같이 Input type으로 한번에 묶어주는 방법이있다.