강의

멘토링

로드맵

Inflearn Community Q&A

moonjong938083's profile image
moonjong938083

asked

Creating Nodebird SNS with Vue

5-12. Loading Following, Followers

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

Written on

·

391

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으로 잘찍힙니다

ssrnodejsawsvuejsmysqlvuex

Quiz

데이터를 서버에서 가져올 때(조회), 일반적으로 사용되는 HTTP 메서드는 무엇일까요?

POST

GET

PUT

DELETE

Answer 1

0

moonjong938083님의 프로필 이미지
moonjong938083
Questioner

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

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

moonjong938083님의 프로필 이미지
moonjong938083
Questioner

감사합니다 제로초님

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

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

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

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

zerocho님의 프로필 이미지
zerocho
Instructor

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

moonjong938083님의 프로필 이미지
moonjong938083
Questioner

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

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

moonjong938083's profile image
moonjong938083

asked

Ask a question