티스토리 뷰

📌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.productId;
    });
    const updatedOrderItems=[];
    return Product.find({'_id':productIds})
    .then(products=>{
        if(Object.keys(products).length < Object.keys(this.products.items).length){ // length가 다르다면 
            for( p of products){
                const qtity = this.products.items.find(i=>{
                    return i.productId.toString()===p._id.toString(); // id값이 같다면 
                }).quantity; // quantity 추출 
                if(qtity>0) updatedOrderItems.push({productId:p._id, quantity: qtity}); // quantity가 추출되었다면 
            }
        }
        this.products.items=updatedOrderItems;
        return this.save();
    })
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함