들어가기nuber-eats를 nestJs와 react.js로 구현해 본다.항상, 들어가기 맨처음이 가장 중요하다
들어가기typeOrm은 DB와 연결 및 통신 하는 언어임,Nuber에서는 postgres사용할 것입니다.https://typeorm.io/https://typeorm.io/supported-platforms지원되는 PlatformnestJs에서 dat
들어가기nestJs는 모듈들이 합쳐지는 구조를 가지고 있다.맨 상위 모듈은 app.modules.ts이다.이번시간 부터 users모듈과 common Modules에 대해서 알아보자make modules : $nest g mo users, $nest g mo common
들어가기modules에서 가장 기본이 되는 entity에 대해서 알아보자!DB Model을 설정해준다.npm i class-transformernpm i class-validator==>Model의 우효성 검사!npm i @types/bcryptnpm i bcrypti
들어가기mutation 및 Query에 사용될 input(argument)과 output(return)을정의해주는 dto에 대해서 알아보겠습니다.createAccount Mutation에서 사용될 agument라고 사용하면 됨. 그리고 return까지.그래서, crea
들어가기Entity와 Dto를 다 만들었으면, 다음은, resolver와 service를 만들어보자.실제로 Mutation 및 Query가 실행되는 Logic을 만드는 부분.token부분은 이어서 코딩해 줄 예정.~
들어가기인증부분을 알아보자https://docs.nestjs.com/techniques/authenticationhttps://npmjs.com/package/jsonwebtokennpm i jsonwebtokennpm i @types/jsonwebt
들어가기jsonwebtoken을 이용해서 토큰을 만들어본다npm i jsonwebtokennpm i @types/jsonwebtoken --only-devimport \* as jwt from 'jsonwebtokenhttps://www.npmjs.com/pa
들어가기JWT를 이용해서 token을 발급하는 것을module로 만들어서 사용해 본다.또한, middleware로 만들어서 사용해본다.module은 두가지로 구분된다. UserModule같은 static모듈,ConfingModule같은 Dynamic모듈로https&#x
** jwt로 middleware를 만들어서 req시 req에 user가 있는지 user가 누군지 확인할 수 있다. ** https://docs.nestjs.com/middleware
들어가기req에 token을 담아서 user를 확인해주는 middleware를 만들었다.이 과정을 graphql에서도 공유할 수 있게 해 준다.context에 어떤 property를 담아주든지 간에,resolver에서 사용할수 있게 해 준다.https://gi
들어가기resolver(Query, mutation)을 실행시키기 전에 Guard를 셋팅하면, resolver실행 전에, Authorization을 확인가능하다.https://docs.nestjs.com/guardsauthentication: 토큰의 유효성 확
들어가기user의 프로필을 확인하는 Query.dto, resolver, service 순서를 기억한다.Entity=>dto=>resolver=>service 하나의 함수가 만들어 지는 과정을다시한번 상기해보자!!
들어가기user의 profile을 edit 혹은 update하는 방법중요한 것은 password를 edit할 경우, 반드시hash화 시켜야 하는데,그 방법을 확실히 알아보자.update혹은 editProfile하기 위해서는 update가 아닌 save를 사용하는데이유는
들어가기entity(user, restaurant, category)를 정리해 본다.entity간의 관계가 엮이는 것에 대해서 중점적으로알아본다,@OneToMany() : 일대 다 관계@ManyToOne() : 다대 일 관계Entity간의 관계를 이어주는 방법은 매우
들어가기restaurant를 만드는 mutaion.category를 초이스하는게 아니라,기존에 존재하면, 연결하고, 존재하지 않으면, 새로 만드는과정을 주의깊게 알아본다.categoryname을 입력받아 category와 연결하는 부분은 잘 알아둘것,newRestaur
들어가기resolver의 함수들을 role(Owner, User, Client)에 따라,permission이 되게 하는 guard를 설정하는 방법canActivate는 오로지 true, false임. pass, unPass임.example~이 부분은 처음부터 끝까지 그
식당 주인이 Restaurant를 수정할 수 있게 하는 resolver 이 부분도 만만치 않은 부분이라 마르고 닳도록 복습할것!!!!!
https://tutorialspoint.com/sql/sql-like-clause.htmhttps://github.com/typeorm/typeorm/blob/master/docs/https://github.com/typeorm/typeor
들어가기식당 주인이 식당을 지우는 API어려울것 없이 dto, resolver, service를 따라가면 끝 어려울것 없이 쉬운부분,!!
들어가기모든 카테고리(한식, 일식등등)를 보고,카테고리에 딸린 식당 및, 식당 갯수등을보는 APICatrgotyResolver은 Restaurant.resolver.ts에 넣어서 만들도록한다.그렇게 길지가 않아서
들어가기restaurantId를 통해서 하나의 restaurant를 보는 API등록된 모든 restaurant를 보는 API(input으로는 page, return은 Restaurnat\[], totalPAges, totalResults등)restaurantId를 in
들어가기식당 이름을 검색해서 이름이 들어간 식당을 찾는 API식당이름으로 어떻게 검색이 이루어지는지를 잘 봐본다,query를 받아서 restaurant를 검색한다.restaurant가 없을 수도 있으니, nullable:true로 한다.검색하는 부분, findAndCo
들어가기restaurant에 따른 menu 즉, Dish Entity어려울것 없이 Entity간의 관계만 유심히 본다restaurant module에 다 같이 만든다.type:'json'형태를 확인한다.
들어가기Dish를 create 및 edit 하는 API createDish, editDish, deleteDish 세개는 비슷하니까 비교해 가면서 본다. relations:'restaurant' 부분과, {...editDishInut}. {...createDishI
들어가기첫번쨰로, $nest g mo ordersorder Entity는 제법, 매우 복잡하다.집중해서 집중해서 봐야할것.order.entity.ts와 order-item.entity.ts두개로 한다.$nest g mo ordersOrder에서1\. Customer 고
들어가기order를 만드는 방법매우 어려우므로 집중해야함.특히, option부분이 매우 난해함.option(name, choice, extra)부분!!.CreateOrderInput Dto는 restaurantId와 items:CreateOrderItemInput\[]
들어가기order를 확인하는 APIrole에 따라 defensive를 해줘야 해서 햇갈릴 수 있으니 집중get order와 get orders를 같이 다룬다.어렵지만, 힘내자!!!!!!!!!!!
들어가기Order status를 Cooking, Cooked, 등등의상태로 바꾸는것.owner가 Cooking, Cooked로 바꿀 수 있고,driver가 PickedUp, Deliverd등으로 바꿀 수 있다. EditOrder는 Defensive Programing
https://github.com/enisdenjo/graphql-ws/blob/master/README.md
어쩔수 없는 subscriptiongraphql에서 graphql-ws만 남기고 없앤다고 한다.가장 어려운 부분임.app.module.tsorders.resolvers.ts이렇게 하면, readyPotato를 실행하면 subscription 구독하고,potatoRead
들어가기subscription을 실제 nuber-eats에 적용시켜 본다1\. subscription 즉, 구독하는 부분과2\. trigger하는 부분으로 구성된다.3\. 설정은 app.tsx의 graphql부분에서 설정.4\. test는 Altire에서 하며, 설정에
들어가기typeOrm사용시 관련된 data들을 불러올떄, relations:{restaurant:true}등으로 사용했지만,entity에 eager:true를 찍어주면, typeOrm에relations을 설정해 주지 않아도,자동적으로 관련 data들을 같이 load한다
들어가기Delivery가 order를 take하는mutation