어떤 에러?
- associations 관계가 있는 두 테이블을 include로 join할때, alias를 작성합니다. 이때, as에 작성하는 alias를 잘못 작성했을때 발생하는 에러입니다.
에러 메시지
UnhandledPromiseRejectionWarning: SequelizeEagerLoadingError:
User is associated to Issue using an alias. You've included an alias (targets),
but it does not match the alias(es) defined in your association (reports).
에러 핸들링 방법
- model 폴더 내 두 파일(테이블은 두개가 associate되므로 파일 2개를 모두 확인해야합니다)에 alias가 설정되어있는지 확인합니다. (저는 테이블명을 잘못 작성해 오류가 발생했습니다. 오타가 있는지, 테이블을 잘못 작성하진 않았는지 확인이 필요합니다.)
static associate(models) {
Issue.belongsTo(models.Post, {
foreignKey: "postId",
as: "posts",
onDelete: "SET NULL",
});
Issue.belongsTo(models.User, {
foreignKey: "reporterId",
as: "reports",
onDelete: "SET NULL",
});
Issue.belongsTo(models.User, {
foreignKey: "targetId",
as: "targets",
onDelete: "SET NULL",
});
}