21.01.16 15:27 작성
·
493
0
안녕하세요 제로초님
팔로워 팔로잉 기능을 유저와 포스트 관계로 응용하려 합니다.
그래서 User모델에
Post모델에
이런식으로 해주고
LOAD_MY_INFO_REQUEST,액션으로인해
라우터가 실행되면 백엔드에서
EagerLoadingError [SequelizeEagerLoadingError]: User is not associated to User!
유저와 유저가 연결되어 있지 않다고 뜹니다. 그래서
이런식으로 바꿔줘도 오류는 똑같습니당..
뭐가 잘못된걸까요...
밑에는 데이터베이스 형태입니다.
답변 6
0
0
2021. 01. 16. 20:58
db.user belongstomany db.post as followings를 하셨으니
user 입장에서는 post가 followings밖에 없습니다.
post입장에서는 users가 followers인 것이고요.
그리고 포린키는 반대라서 followingid에 postid가 들어갑니다.
0
2021. 01. 16. 20:36
질문1.
이렇게 되어있으면 post모델이 Follwers가 되고 foreginkey가 FollwingId가 되는것인가요??....
질문2.
만약 그렇다면
위의 라우터에서 Post에서 as를 Followings를 해야만 가져올 수 있더라구요. Follwers를넣으면 오류가나더라구욥..
위의 라우터는 왜 post as Follwers가 안먹히는 걸까요?.. 헷갈리네요 ㅜ
0
2021. 01. 16. 20:05
User랑 Post이름을 팔로워팔로잉으로 하니까 엄청 헷갈리네요.
Post모델이 Followers고 foreignKey를 followingId로 하신 것 아닌가요?
db.Post.belongsToMany(db.User, { through: 'Follow', as: 'Followers', foreignKey: 'FollowingId' });
0
2021. 01. 16. 18:59
감사합니다. 제가 디비 이해가 부족해서 더 여쭤보겠습니다...ㅜ
위에처럼 post모델의 이름은 Followings이고 foreignKey는 FollwerId이고
User모델은 Follwers 이고 foriegnKey는 FollowingId이잖아요?
그런데 팔로우하는 라우터에서 이렇게 정해줬을 시
팔로우를 하면 (참고로 req.user.id)는 1이고 req.params.PostId가 2입니다.)
데이터베이스에 Follwerid가 1 FollowingId가 2로 나옵니다.
저는 당연히 Post모델 즉 Followings의 foreignKey가 FollwerId이기 때문에 FollwerId에 2가 들어갈 줄 알았는데. 반대가 되네요?? post모델의 forignKey가 FollwerId인데 왜 데이터베이스에는 FollowingId에 2가 들어가는건지 궁금합니다..
0