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

문종현님의 프로필 이미지
문종현

작성한 질문수

Vue로 Nodebird SNS 만들기

5-12. 팔로잉, 팔로워 불러오기

팔로우 팔로잉 관계가 작동하지 않습니다ㅜ

작성

·

321

0

안녕하세요!

제로초님 처럼 팔로잉 팔로워 관계를 확인해 보려고 6개의 아이디를 가입후에 하나로 5개의 아이디를 팔로우하여 프로필에 들어갔는데 아이디 2 3 4는 팔로우해도 뜨지 않고 아이디 5와 6만 프로필에 뜹니다.

게다가 제로초님 처럼 가로로 3개씩 안나오고 세로로 뜨네요ㅜ

이런 식으로 팔로우를 했는데

이렇게 5와 6만 뜹니다 팔로잉에요

제로초님 코딩과 비교해보고, 테이블도 다 드랍해보고 해봐도 같은현상이 반복됩니다 ㅜ 

무슨문제인지 알 수 있을까요??

routes/user.js

router.post('/:id/follow'isLoggedInasync (reqresnext=> {
    try {
        const me = await db.User.findOne({
            where: { idreq.user.id }
        });
        await me.addFollowing(req.params.id)
        res.send(req.params.id)
    } catch (err) {
        console.error(err)
        next(err)
    }

})

router.delete('/:id/follow'isLoggedInasync (reqresnext=> {
    try {
        const me = await db.User.findOne({
            where: { idreq.user.id }
        });
        await me.removeFollowing(req.params.id)
        res.send(req.params.id)
    } catch (err) {
        console.error(err)
        next(err)
    }

})



router.get('/:id/followings'isLoggedInasync (reqresnext=> {
    try {
        const user = await db.User.findOne({
            where: { idreq.user.id},
        })
        const followings = await user.getFollowings({
            attributes: ['id''nickname'],
            limitparseInt(req.query.limit || 310),
            offsetparseInt(req.query.limit || 010)
        })
        res.json(followings)
    } catch (err) {
        console.error(err)
        next(err)
    }
})

router.get('/:id/followers'isLoggedInasync (reqresnext=> {
    try {
        const user = await db.User.findOne({
            where: { idreq.user.id},
        })
        const followers = await user.getFollowers({
            attributes: ['id''nickname'],
            limitparseInt(req.query.limit || 310),
            offsetparseInt(req.query.limit || 010)
        })
        res.json(followers)
    } catch (err) {
        console.error(err)
        next(err)
    }
})

router.delete('/:id/follower'isLoggedInasync (reqresnext=> {
    try {
        const me = await db.User.findOne({
            where: {idreq.user.id}
        })
        await me.removeFollower(req.params.id)
        res.send(req.params.id)
    } catch (err) {
        console.error(err)
        next(err)
    }
})

store/users.js

mutations

loadFollowing(statepayload) {
        if(payload.offset === 0) {
            state.followingList = payload.data
        } else {
            state.followingList = state.followingList.concat(payload.data);
        }
        state.hasMoreFollowing = payload.data.length === limit
    },
    loadFollower(statepayload) {
        if(payload.offset === 0) {
            state.followerList = payload.data
        } else {
            state.followerList = state.followerList.concat(payload.data);
        }
        state.hasMoreFollower = payload.data.length === limit
    },
    following(statepayload) {
        state.me.Followings.push({ idpayload.userId })
   },

actions

 loadFollowing({commitstate}, payload) {
        if(!(payload && payload.offset === 0&& !state.hasMoreFollowing) {
            return
        }
        let offset = state.followingList.length;
        if(payload && payload.offset === 0) {
            offset = 0;
        }
            return this.$axios.get(`/user/${state.me.id}/followings?limit=3&offset=${offset}`, {
                withCredentialstrue
            })
            .then((res=> {
                commit('loadFollowing', {
                    datares.data,
                    offset,
                })
            })
            .catch((err=> {
                console.error(err)
            })
        
    },
    loadFollower({commitstate}, payload) {
        if(!(payload && payload.offset === 0&& !state.hasMoreFollower) {
            return
        }
        let offset = state.followerList.length;
        if(payload && payload.offset === 0) {
            offset = 0;
        }
            return this.$axios.get(`/user/${state.me.id}/followers?limit=3&offset=${offset}`, {
                withCredentialstrue
            })
            .then((res=> {
                commit('loadFollower', {
                    datares.data,
                    offset,
                })
            })
            .catch((err=> {
                console.error(err)
            })
    },
    follow({commitstate}, payload) {
        this.$axios.post(`/user/${payload.userId}/follow`, {}, {
            withCredentialstrue,
        })
        .then(() => {
            commit('following', {
                userIdpayload.userId
            })
        })
        .catch((err=> {
            console.error(err);
        })
    },
    unFollow({commitstate}, payload) {
        return this.$axios.delete(`/user/${payload.userId}/follow`, {
            withCredentialstrue,
        })
        .then(() => {
            commit('removeFollowing', {
                userIdpayload.userId
            })
        })
        .catch((err=> {
            console.error(err);
        })
   },

뷰 데브툴과 네티워크 탭에서도 이상은 보이지 않습니다. 뷰데브툴에서도 팔로우 언팔로우 누르면 following removefollosing 찍히구요 네트워크 탭에서도 200으로 잘찍힙니다

답변 1

0

문종현님의 프로필 이미지
문종현
질문자

아이디 1로  2 3 4 5 6까지 모두 팔로잉 한후에 로그인을 하면

이렇게 콘솔찍어보면 뜹니다. 이게 팔로우에 다 들어와있다는 뜻 아닌가요??ㅜ

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 저렇게 뜨면 팔로우중인 겁니다. 표시되는 쪽에서 2,3,4가 그냥 짤려서 표시된 게 아닌가 싶은데요. 저와 profile쪽 코드가 다를 겁니다. css쪽도요.

문종현님의 프로필 이미지
문종현
질문자

감사합니다 제로초님

그런데 제가 5 하고 6 아이디를 언팔하고 프로필 들어가 봤는데

다른 팔로우한 아이디(2, 3, 4)는 아예 보이지가 않습니다 ㅜ

front에 프로필 페이지도 계속 보고 있는데 다른부분을 찾지 못하고 있구요 

참 그리고 팔로우도 콘솔에 뜨는데 프로필 페이지 상에는 빈칸으로 나옴니다 ㅜ

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

3개씩 불러오도록 했는데 앞에 세 개를 짜르고 불러오는 것 같은데요. 프로그래밍에서 인덱스나 페이지는 0부터 시작하는데 1로 적으신 거 아닌가요?

문종현님의 프로필 이미지
문종현
질문자

아 그렇네요..ㅜㅜ 햇갈려서 잘못 적었나보네요

offset limit 부분 다시 하나한 보다 보니 틀렸네요... 수정하니 바로 보입니다! 감사합니다 제로초님!!!

문종현님의 프로필 이미지
문종현

작성한 질문수

질문하기