서버에서 이메일을 보내는 기능을 위해서 nnodemailer와 sendgrid를 사용하자.
이메일을 보내는것은 아주 간단하다. 아래링크를 참조
sendgrid transport를 이용해 몇몇 옵션으로 transport를 만들고 그것을 nodemail의 sendmail()로 요청하면 끝.
sendgrid 홈페이지에서 회원가입하자.
yarn add nodemailer
yarn add nodemailer-sendgrid-transport
명령을 통해 설치하자.
src/utils.js에 아래와같이 작성한다.
중요한 코드는 아래 두줄이다.
const client = nodemailer.createTransport(sgTransport(options));
return client.sendMail(email);
transport를 만들때는 options가 필요하다.(api_user는 sendgrid username , api_key는 sendgrid 비밀번호)
email변수에는 emil 주소 뿐만아니라 from, to, subject, html 등을 기입한다.
이후 server.js에서 sendSecretMail()펑션을 불러보자.
아주 잘된다!
이제 우리서버에서 createUser resolver를 만들어보자.
src/api/User 폴더안을 아래와 같이 구성하자.(기존꺼 다 삭제)
createAccount를 위해서 무엇이 필요할지 prisma를 확인해보자.
username,email,firstName,lastName bio가 필요한것을 확인하였다.
prisma에서 확인 한대로 src/createAccount/createAccount.graphql을 아래와 같이 코딩한다.
모두 String 타입이고 User타입을 리턴한다.
type Query는 실제 사용되지 않는 가짜쿼리이다. Mutation만 있으면 에러가 난다.
src/createAccount/createAccount.js파일을 아래와 같이 작성한다.
firstName, lastName, bio같은 경우는 !(필수기입)이 아니기때문에 비어있을수도있다.
null방지를 위해 기본값으로 빈 문자열을 선언한다.
서버 playground에서 Mutation을 실행해보자.
playground, prisma 관리페이지에서 정상적으로 생성된것을 확인할 수 있다!!