강의

멘토링

커뮤니티

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

취뽀제발님의 프로필 이미지
취뽀제발

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

시퀄라이즈 sync + nodemon

다대다 관계 중간테이블 생성 에러

작성

·

229

0

실행 시 에러는 발생하진 않습니다. 기존 User, Comment, Hashtag, Post, Image 모델만 생성하고 다대다 관계의 중간 테이블은 (Like, PostHashtag, Follow) 생성하지 않습니다 ... 

nodemon 실행 시 보이는 SQL문에도 기존 모델 CREATE 문만 확인 됩니다.

아래는 제가 작성한 associate 내 코드입니다. 다른 부분 캡쳐가 더 필요할까요? ㅜ

// models/post.js
db.Post.belongsToMany(db.Hashtag, { through: 'PostHashtag' });
db.Post.belongsToMany(db.User, { through: 'Like', as: 'Likers' });

// models/user.js
db.User.belongsToMany(db.Post, { through: 'Like', as: 'Liked' });
db.User.belongsToMany(db.User, { through: 'Follow', as: 'Followers', foreignKey: 'FollowingId' });
db.User.belongsToMany(db.User, { through: 'Follow', as: 'Followings', foreignKey: 'FollwerId' });

// models/hashtag.js
db.Hashtag.belongsToMany(db.Post, { through: 'PostHashtag' });

답변 3

0

취뽀제발님의 프로필 이미지
취뽀제발
질문자

아 ㅜㅜ 찾았습니다 죄송합니다. models/index.js에서 만들어놓은 모델들 require 할때 db.모델명 이 아닌 const 써서 변수로 생성했습니다. db 객체에 모델을 등록하는 건데 ... 잘못했네요 ㅜ 답변 감사드립니다! 

0

취뽀제발님의 프로필 이미지
취뽀제발
질문자

Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});

0

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

모델.associate를 실행하는 부분을 보여주세요.

취뽀제발님의 프로필 이미지
취뽀제발

작성한 질문수

질문하기