📌2020 07 16 login, sign up, 그리고 resetting password 구현 sign up과 resetting password에서는 gmail api를 이용하여 user에게 email을 보내도록 함 ✨how "sign up" works 사용자에게 email과 password를 입력받는다. email이 이미 존재하면 다른 페이지로 리다이렉트 해준다. email 존재하지 않는다면 새로운 User 모델을 생성하고 데이터베이스에 반영해준다. sign up이 완료되면 gmail api 를 이용하여 User에게 sign up이 되었다고 알려준다. exports.postSignUp=(req,res,next)=>{ const email = req.body.email; const password = ..
📌2020 07 12 UI 수정 사용자가 특정 아이템 스키마를 삭제했는데 Cart와 Order에 해당 아이템이 담겨 있는 버그 발견. null로 인식하여 getCart 라우팅과 getOrder 라우팅에서 에러 발생 각각 User 모델과 Order 모델에서 renew 메서드 구현. 현재 Cart와 Order에 저장된 ProductId에 해당하는 모든 Product를 찾고, 해당 Product의 개수와 현재 Cart, Order에 담겨있는 아이템의 개수가 다를 경우 Cart와 Order를 갱신해주도록 함 renew메서드 OrderSchema.methods.renewOrder=function(){ const productIds = this.products.items.map(i=>{ return i.produc..
📌2020 07 11 MySql -> NoSql 데이터 베이스 변경 , 개인프로젝트이기 때문에 몽고DB가 더 적절하다고 판단함 수업에서는 한명의 User당 Order 데이터를 여러개 생성했는데, 이럴경우 Order에 들어간 아이템들이 무의미하게 겹쳐질 수 있겠다 생각함, 따라서 한명의 User당 하나의 Order데이터만 갖고 Order에 들어갈 아이템 리스트를 Object Array로 변경하여 Order 데이터에 Embeded함. 추후에 유저 한명 당 여러개의 Order를 생성해야하는 경우에는 이전 방식으로 다시 돌아가도록! 기존의 Order에는 아이템의 정보를 Embeded 했지만, products와 order의 관계가 다대다(Many to Many) 관계라고 판단하여 Products를 참조(ref)하..