관리 메뉴

프론트엔드 정복하기

React_구독기능(2) 본문

React/강의-youtube따라하기

React_구독기능(2)

GROWNFRESH 2020. 6. 9. 11:18

0. onClick func

구독 button을 클릭하면 onSubscirbe func 실행

 

1. 구독 or not  func

: props 생성(userTo, userFrom) / 성공하면 useState 변형하기

더보기

**VideoDetail Page에 props 추가 = userFrom={localStage.getItem('userId') 속성 추가

 

const onSubscribe=()=>{

        let subscribeVariable={userTo:props.userTo, userFrom:props.userFrom}

        

        // 이미 구독 중이라면

        if(Subscribed){

            Axios.post('/api/subscribe/unsubscribe'subscribeVariable)

                .then(response=>{

                    if(response.data.success){

                        setSubscribeNumber( SubscribeNumber - 1 )

                        setSubscribed( !Subscribed )

                    }else{

                        alert('구독을 취소하는 데 실패했습니다.')

                    }

                })

        // 구독 중이지 않다면

        }else{

            Axios.post('/api/subscribe/subscribe'subscribeVariable)

                .then(response=>{

                    if(response.data.success){

                        setSubscribeNumber( SubscribeNumber + 1 )

                        setSubscribed( !Subscribed )

                    }else{

                        alert('구독하는 데 실패했습니다.')

                    }

                })

        }

    }

 

 

2. 구독 or not MongoDB save&delete

: findOneAndDelete, save, new 객체

더보기

router.post('/unsubscribe', (reqres)=>{

    Subscriber.findOneAndDelete({'userTo':req.body.userTo, 'userFrom':req.body.userFrom})

        .exec( (err,doc)=>{

        if(errreturn res.status(400).send(err);

        return res.status(200).json({success:truedoc})

    })

}) 

router.post('/subscribe', (reqres)=>{

    const subscribe = new Subscriber(req.body)    : instance 생성 (기타 - Java instance 참고)

    subscribe.save((err,doc)=>{

        if(errreturn res.status(400).send(err);

        return res.status(200).json({success:true})

    })

}) 

'React > 강의-youtube따라하기' 카테고리의 다른 글

React_댓글기능 구조 사진  (0) 2020.06.09
React_subscriptionPage 만들기  (0) 2020.06.09
React_구독기능(1)  (0) 2020.06.08
React_SideVideo 만들기  (0) 2020.06.05
React_비디오 디테일 페이지  (0) 2020.06.05