인프런 커뮤니티 질문&답변

김트위스트님의 프로필 이미지
김트위스트

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

views 카운터를 올리고 싶은데 어디서 올리면 될까요?

작성

·

179

0

기능 중에 모델에는 views가 있는데 

기능 구현에는 views 올려주는게 없어서 일단 구현하려고 하는데

 

Product.find({ _id: { $in: productIds } })
        .populate('writer')
        .exec((err, product) => {
            if (err) return res.status(400).send(err)
            product.views++;
            product.save();
            return res.status(200).send(product)
      })

 

이런식으로 서버단에서 올리려고 하면  save 함수도 에러가 나고

카운터도 올라가지 않아서요 ㅠㅠ

답변 1

1

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요 ! 


if (type === "single") {
Product.findOneAndUpdate({ _id: productIds }, { $inc: { "views": 1 } }, (err, doc) => {
if (err) return res.json({ success: false, err });
});
}

 

이런식으로 해주시면 됩니다 !!! 
수고하세요 ㅎㅎㅎ

감사합니다. 하나 더 하는 식으로 했는데 이런식으로 조건을 조정해줘도 되는군요.

여기에 sleep 함수나 cookieparser를 이용해 조회수 중복처리도 해보도록 하겠습니다. 감사합니다.

김트위스트님의 프로필 이미지
김트위스트

작성한 질문수

질문하기