티스토리 뷰

📌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/07   »
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
글 보관함