강의

멘토링

로드맵

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

한영탁님의 프로필 이미지
한영탁

작성한 질문수

React로 NodeBird SNS 만들기

시퀄라이즈로 데이터를 가져오는 문제입니다.

해결된 질문

작성

·

318

0

app.post("/userscomment", async (req,res)=>{
console.log("--------------------")
try{
const aaa= await db.user.findAll({
where:{id:req.body.id},
attributes:["id"]
})
console.log("@@@@@@@",aaa)
if(aaa){
const bbb = await aaa.getFollowers({include:[{model:db.comments}]})
if(bbb){
res.status(200).json(bbb)
}else{
res.status(404).send("다시")
}
}else{
res.status(404).send("다시")
}
} catch(e){console.log(e)}

강의에서와 같은 방식으로 associate를 작성했습니다

그리고 as는 followers라고 만들었습니다

그래서 getfollowers라는 함수로 유저의 팔로우를 가져오고 그 팔로우의 커맨츠도(작성글)

TypeError: aaa.getFollowers is not a function

    at /home/gksdudxkr/junier/index.js:148:31

라는 에러가 나옵니다 

어떻게 해야할까요?

답변 7

1

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

하나의 쿼리에서 같이 가져오실 수 있습니다. include를 사용해서요. 첫 쿼리에서부터 include로 하나의 쿼리로 가져오세요.

0

한영탁님의 프로필 이미지
한영탁
질문자

넵 감사합니다!!

0

한영탁님의 프로필 이미지
한영탁
질문자

아 제가 findAll로 해서 안되는 거였군요

findOne로 해서 개인의 정보를 가져오고 

그 정보로 follow를 가져오니 각 커맨트들도 같이 가져와졌습니다

감사합니다!!!

제로초님 지금은 3단계에 걸쳐서 가져오는 것을 구현했는데요 단계가 계속 늘어나거나 지금 정보보다 더 추가로 가져오게 하려면 그 후에는 어떡해야 할지 감이 안잡힙니다

혹시 관련 설명이 들어가 있는 사이트나 주소 혹시 가지고 계실까요?

0

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

아 이제 알았네요 . findAll하셨으니 aaa는 배열입니다. 예를 들어 aaa === [유저1, 유저2]

각각의 유저1, 유저2에서는 getFollowers를 할 수 있지만 aaa 배열 자체에서는 안 됩니다.

0

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

console.log(db.user.Instance.prototype) 해서 getFollowers가 들어있는지 확인해보세요.

0

한영탁님의 프로필 이미지
한영탁
질문자

user.associate = (db) =>{
db.user.hasMany(db.comments);
db.user.belongsToMany(db.comments,{through:"like", as : "liker"});
db.user.belongsToMany(db.user,{through:"Follow",as:"Followers", foreignKey: 'Followingid'});
db.user.belongsToMany(db.user,{through:"Follow",as:"Followings", foreignKey: 'Followerid'});
db.user.hasMany(db.meeting_popup)
};

대문자로 작성을 해주었습니다 

현재 다른 addFollowers는 작동을 합니다

그런데 getFollowers만 함수를 찾을 수 없다고 계속 나오고 있습니다

그리고 데이터베이스를 지웠다가 다시 만들었습니다

0

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

as: 'Followers' 대문자로 써보세요.

한영탁님의 프로필 이미지
한영탁

작성한 질문수

질문하기