본문 바로가기

분류 전체보기

(108)
SearchUser, SearchPost
ToggleLike and AddComment https://github.com/wonjongRyu/bookstagram/commit/7c761c4a8765d16a276e38cf0813975f659a9dd5 ToggleLike는 전 글에 어떻게 사용하는제 설명했고, 댓글을 추가하는 addComment는 아래처럼 addComment 함수의 argument를 소괄호 안에 적고, 생성된 comment의 정보를 대괄호 뒤에 추가로 적어준다. id는 자동 생성, text는 args에서, user는 http header에 적은 토큰에서, post는 args에서 가져온다.
Passport JWT https://github.com/wonjongRyu/bookstagram/commit/00507f5393499d0f758fc6d83bea150d4e335bb7 npm install passport passport-jwt jsonwebtoken randomkeygen.com에서 문자열을 하나 가져와서 env에 JWT_SECRET으로 저장 authenticateJwt 함수에서는 passport.authenticate('jwt') 함수를 실행 이 함수는 Strategy를 활용해서 jwt 토큰을 추출 토큰이 추출되면 verifyUser를 payload와 함께 실행 payload는 토큰에서 해석된 id를 받아서, user를 찾아서 리턴 그러면 콜백 함수가 실행되는데, 사용자가 있으면 그 사용자를 req에 추가 ..
Request Secret Resolver https://github.com/wonjongRyu/bookstagram/commit/2708c0898deba3c81b1aa8802ec867a17ec78642 로그인을 하기 전에 로그인 비밀 값을 만들어보자 randomlists.com/nouns randomlists.com/random-adjectives 형용사, 명사를 500개씩 가져온다 npm run prisma로 generate해주고 localhost:4000을 새로고침 prisma 웹이랑 datamodel.prisma랑 자동 동기화가 잘 안된다. 직접 등록해줘야 하는듯 아래처럼 하면 prisma에 업데이트 된다. 이걸 메일로 보내기 위해 nodemailer를 사용 메일을 보내기 위해서는 sendgrid라는 transporter가 필요 sendg..
Create Account Resolver https://github.com/wonjongRyu/bookstagram/commit/3842dbcce580def4df13771d4b71e82e11693fd3 graphql 파일에는 mutation과 query가 모두 있어야 한다. localhost:4000으로 들어가보면 DOCS에서 아래와 같이 mutation과 query가 업데이트 되어 있다. 아래처럼 쉽게 계정을 만들 수 있다. 이때 create Account(args){id} 에서 리턴 받길 원하는 값들은 중괄호에 넣는거임 prisma를 확인해보면 아래처럼 User가 생성되었다.
Resolver https://github.com/wonjongRyu/bookstagram/commit/6504ac8eee2404f07ff27a5f857d53fb7802a620 local host에서 이렇게 해본다 { allUsers{ id firstName } userById(id: "ck1kga0y3jwp10b0960298m2t"){ firstName } }
Integrating https://github.com/wonjongRyu/bookstagram/commit/5edb7ef94edb427468f83175785a90b211b24c84 처음부터 prisma.yml은 gitignore에 추가했어야 했다. generated를 보면 index.js와 prisma-schema.js 파일이 있다. 이 파일들을 통해 prisma와 정보를 주고 받는다. 서비스를 배포할 때마다 prisma cloud에서 무언가를 생성하는데, 그걸 다운로드 받아야 한다. prisma 서버와 정보를 주고 받으려면 prisma client를 다운받아야 한다. npm install prisma-client-lib scripts 를 수정하고 npm run prisma 이러면 prisma 데이터베이스에서 정보를 가져온..
Datamodel https://github.com/wonjongRyu/bookstagram/commit/c97f59fb9cfc36c48b9049ed17d07a80c36f3e1d datamodel.prisma 파일에 필요한 모델들을 추가한다. graphql 파일만 작성하면 resolver도 생성되고, 서버도 만들어지고 관리 패널도 만들어진다. 이때 deploy하면 HTTPS 가 주어지는데, 여기서 생성한 주소로 들어가야 한다. localhost와는 다른 주소다. 이 주소는 사용자들에게 절대 알려주면 안된다. datamodel에 @unique를 달아주면 신규 정보가 기존 정보와 동일할 경우 차단한다. !를 달면 필수로 입력해야 하는 사항이다. @default 는 !가 없을 경우에 기본 입력값을 설정해준다. @relation..